Skip to content

chore(Pipfiles): update odh-elyra to version 4.2.3 across all Pipfiles #1591

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Aug 2, 2025

Conversation

jiridanek
Copy link
Member

@jiridanek jiridanek commented Aug 1, 2025

Description

How Has This Been Tested?

Merge criteria:

  • The commits are squashed in a cohesive manner and have meaningful messages.
  • Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
  • The developer has manually tested the changes and verified that the changes work

Summary by CodeRabbit

  • Chores
    • Updated JupyterLab-related packages to newer versions across multiple environments, including odh-elyra (4.2.3) and jupyterlab-git (0.51.2).
    • Upgraded core Python packages such as argon2-cffi-bindings (to 25.1.0, raising minimum Python version to 3.9), matplotlib (to 3.10.5), py-spy (to 0.4.1), pygithub (to 2.7.0), keras (to 3.11.1), and regex (to 2025.7.34) with updated compatibility and security hashes.
    • Removed the deprecated package from several environments.
    • Added additional integrity hashes for pyarrow in select runtimes.

Bumps [jupyterlab-git](https://github.com/jupyterlab/jupyterlab-git) from 0.50.2 to 0.51.1.
- [Release notes](https://github.com/jupyterlab/jupyterlab-git/releases)
- [Changelog](https://github.com/jupyterlab/jupyterlab-git/blob/main/CHANGELOG.md)
- [Commits](jupyterlab/jupyterlab-git@v0.50.2...v0.51.1)

---
updated-dependencies:
- dependency-name: jupyterlab-git
  dependency-version: 0.51.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
@jiridanek jiridanek added the tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges. label Aug 1, 2025
Copy link
Contributor

coderabbitai bot commented Aug 1, 2025

Walkthrough

This change updates the Pipfile and requirements.txt files across multiple Jupyter-related and runtime directories. It primarily bumps the versions of odh-elyra (from 4.2.2 to 4.2.3) and jupyterlab-git (from ~0.50.1/0.50.2 to ~0.51.1/0.51.2). Several requirements.txt files also update other packages such as argon2-cffi-bindings, matplotlib, py-spy, pygithub, keras, and regex, and remove the deprecated package. No changes to exported or public entities were made.

Changes

Cohort / File(s) Change Summary
Jupyter Pipfiles (Multiple Environments & Python Versions)
jupyter/datascience/ubi9-python-3.* /Pipfile, jupyter/minimal/ubi9-python-3.* /Pipfile, jupyter/pytorch/ubi9-python-3.* /Pipfile, jupyter/rocm/pytorch/ubi9-python-3.* /Pipfile, jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile, jupyter/tensorflow/ubi9-python-3.* /Pipfile, jupyter/trustyai/ubi9-python-3.* /Pipfile
Bumped odh-elyra from 4.2.2 to 4.2.3 and jupyterlab-git from ~0.50.1/0.50.2 to ~0.51.1/0.51.2. No other dependencies changed.
Jupyter requirements.txt (Multiple Environments & Python Versions)
jupyter/datascience/ubi9-python-3.11/requirements.txt, jupyter/datascience/ubi9-python-3.12/requirements.txt, jupyter/minimal/ubi9-python-3.11/requirements.txt, jupyter/minimal/ubi9-python-3.12/requirements.txt, jupyter/pytorch/ubi9-python-3.11/requirements.txt, jupyter/pytorch/ubi9-python-3.12/requirements.txt, jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt, jupyter/rocm/pytorch/ubi9-python-3.12/requirements.txt, jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt, jupyter/tensorflow/ubi9-python-3.11/requirements.txt, jupyter/tensorflow/ubi9-python-3.12/requirements.txt, jupyter/trustyai/ubi9-python-3.11/requirements.txt, jupyter/trustyai/ubi9-python-3.12/requirements.txt
Upgraded multiple packages: argon2-cffi-bindings (21.2.0 → 25.1.0, Python >=3.6 to >=3.9), jupyterlab-git (0.50.2 → 0.51.2), matplotlib (3.10.3 → 3.10.5), odh-elyra (4.2.2 → 4.2.3), py-spy (0.4.0 → 0.4.1), pygithub (2.6.1 → 2.7.0), regex (2025.7.31 → 2025.7.34), keras (3.11.0 → 3.11.1); removed deprecated package. Updated hashes accordingly.
Runtime requirements.txt (Multiple Runtimes & Python 3.11/3.12)
runtimes/datascience/ubi9-python-3.11/requirements.txt, runtimes/datascience/ubi9-python-3.12/requirements.txt, runtimes/minimal/ubi9-python-3.11/requirements.txt, runtimes/minimal/ubi9-python-3.12/requirements.txt, runtimes/pytorch/ubi9-python-3.11/requirements.txt, runtimes/pytorch/ubi9-python-3.12/requirements.txt, runtimes/rocm-pytorch/ubi9-python-3.11/requirements.txt, runtimes/rocm-pytorch/ubi9-python-3.12/requirements.txt, runtimes/rocm-tensorflow/ubi9-python-3.11/requirements.txt, runtimes/tensorflow/ubi9-python-3.11/requirements.txt, runtimes/tensorflow/ubi9-python-3.12/requirements.txt
Upgraded argon2-cffi-bindings (21.2.0 → 25.1.0, Python >=3.6 to >=3.9), matplotlib (3.10.3 → 3.10.5), py-spy (0.4.0 → 0.4.1), added additional hashes for pyarrow 21.0.0 (Python >=3.9), and bumped keras in TensorFlow runtime. Updated hashes accordingly. No other packages or constraints changed.
Codeserver requirements.txt (Python 3.11 & 3.12)
codeserver/ubi9-python-3.11/requirements.txt, codeserver/ubi9-python-3.12/requirements.txt
Upgraded matplotlib from 3.10.3 to 3.10.5 and py-spy from 0.4.0 to 0.4.1, with updated hashes. No other changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

Suggested labels

size/s

Suggested reviewers

  • jesuino
  • daniellutz
  • caponetto

Note

⚡️ Unit Test Generation is now available in beta!

Learn more here, or try it out under "Finishing Touches" below.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@openshift-ci openshift-ci bot requested review from dibryant and jesuino August 1, 2025 14:58
@openshift-ci openshift-ci bot added the size/m label Aug 1, 2025
Copy link
Contributor

openshift-ci bot commented Aug 1, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign harshad16 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added size/m and removed size/m labels Aug 1, 2025
@jiridanek jiridanek changed the title upd(Pipfiles): odh-elyra to version 4.2.3 across all Pipfiles chore(Pipfiles): update odh-elyra to version 4.2.3 across all Pipfiles Aug 1, 2025
@openshift-ci openshift-ci bot added size/m and removed size/m labels Aug 1, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between aa334e5 and 05d1f44.

📒 Files selected for processing (13)
  • jupyter/datascience/ubi9-python-3.11/Pipfile (1 hunks)
  • jupyter/datascience/ubi9-python-3.12/Pipfile (1 hunks)
  • jupyter/minimal/ubi9-python-3.11/Pipfile (1 hunks)
  • jupyter/minimal/ubi9-python-3.12/Pipfile (1 hunks)
  • jupyter/pytorch/ubi9-python-3.11/Pipfile (1 hunks)
  • jupyter/pytorch/ubi9-python-3.12/Pipfile (1 hunks)
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile (1 hunks)
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile (1 hunks)
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile (1 hunks)
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile (1 hunks)
  • jupyter/tensorflow/ubi9-python-3.12/Pipfile (1 hunks)
  • jupyter/trustyai/ubi9-python-3.11/Pipfile (1 hunks)
  • jupyter/trustyai/ubi9-python-3.12/Pipfile (1 hunks)
🧰 Additional context used
🧠 Learnings (17)
📓 Common learnings
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/test/test_notebook.ipynb:22-29
Timestamp: 2025-07-02T18:27:51.097Z
Learning: jiridanek consistently creates comprehensive follow-up GitHub issues from PR review comments in opendatahub-io/notebooks, turning specific code quality concerns into systematic improvements tracked with proper context, acceptance criteria, and cross-references. Issue #1266 demonstrates this pattern by expanding a specific error handling concern in load_expected_versions() into a repository-wide improvement initiative.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-24T12:01:45.188Z
Learning: jiridanek requested verification of 2024.2 tag package versions against corresponding Pipfiles during PR #1496 review. The analysis revealed that 2024.2 tags contain intentionally frozen older versions (N-1 behavior) while the current PR correctly updates only the N (latest) tags to match Python 3.11 Pipfiles, demonstrating proper understanding of the repository's N-1 version freezing policy.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1379
File: .tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-push.yaml:14-17
Timestamp: 2025-07-11T11:15:47.424Z
Learning: jiridanek requested GitHub issue creation for CEL filter problem in datascience workbench Tekton pipelines during PR #1379 review. Issue #1383 was successfully created with comprehensive problem description covering both Python 3.11 and 3.12 pipelines incorrectly watching jupyter/minimal directories instead of jupyter/datascience directories, detailed impact analysis of pipeline execution failures, complete solution with before/after code examples, thorough acceptance criteria for path updates and pipeline triggering verification, implementation notes about repository structure alignment, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/test/test_notebook.ipynb:112-126
Timestamp: 2025-07-08T13:21:09.150Z
Learning: jiridanek requested GitHub issue creation for notebook linting and formatting improvements during PR #1306 review, specifically to address inconsistent metadata across .ipynb files and implement systematic quality standards. This continues the established pattern of comprehensive issue creation for code quality improvements with detailed problem descriptions, multiple solution options, phased acceptance criteria, and proper context linking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T14:46:03.171Z
Learning: jiridanek requested GitHub issue creation for two nitpicks during PR #1588 review: comment wording improvement in ROCm TensorFlow Dockerfile and typo fix in Jupyter DataScience Dockerfile stage header. Issues #1589 and #1590 were successfully created with comprehensive problem descriptions, specific file locations and line numbers, clear before/after solutions, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/datascience/ubi9-python-3.12/Pipfile:33-34
Timestamp: 2025-07-08T19:26:17.140Z
Learning: jiridanek requested GitHub issue creation for jupyter-client dependency pinning inconsistency during PR #1333 review, specifically asking to note the implications of breaking changes in 9.x versions. Issue #1343 was created with comprehensive problem description covering inconsistent pinning style across all Python 3.12 runtime images, detailed breaking changes analysis (kernel protocol, session management, connection security, API changes, async/await modifications), reproducibility and security impact assessment, multiple solution options with code examples, phased acceptance criteria, implementation guidance, testing approach, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-06-30T19:44:57.656Z
Learning: In the opendatahub-io/notebooks repository, jiridanek effectively manages comprehensive PR reviews by tracking all feedback as follow-up GitHub issues rather than blocking merge of high-quality implementations. This demonstrates excellent project management practices for balancing current deliverables with future improvements.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-pytorch/ubi9-python-3.12/de-vendor-torch.sh:9-12
Timestamp: 2025-07-08T19:28:15.791Z
Learning: jiridanek requested GitHub issue creation for runtime detection improvement of Python site-packages paths during PR #1333 review. Issue #1344 was created with comprehensive problem description covering hard-coded path fragility across UBI9 distributions, extensive affected files analysis including 4 de-vendor scripts, 30+ Dockerfiles with chmod operations, and 12+ pip.conf configurations, runtime detection solution using sysconfig module, implementation areas breakdown, benefits analysis, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for RStudio py311 Tekton push pipelines during PR #1379 review. Issue #1384 was successfully created covering two RStudio variants (CPU and CUDA) found in manifests/base/params-latest.env, with comprehensive problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Dockerfile.rocm:56-66
Timestamp: 2025-07-02T18:19:49.397Z
Learning: jiridanek consistently creates comprehensive follow-up GitHub issues for security concerns raised during PR reviews in opendatahub-io/notebooks, ensuring systematic tracking and resolution of supply-chain security improvements like GPG signature verification for package repositories.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: TrustyAI's jupyter-bokeh was pinned to 3.0.5 due to compatibility requirements with TrustyAI's visualization components, but the actual deployed version in requirements.txt shows 3.0.7, indicating incremental testing. The upgrade to 4.0.5 in this PR represents the completion of a gradual migration strategy from the 3.x series after confirming compatibility with Bokeh 3.7.3.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/datascience/ubi9-python-3.11/Pipfile:34-36
Timestamp: 2025-06-28T14:13:27.890Z
Learning: In the opendatahub-io/notebooks repository, the dependency pinning strategy follows a deliberate pattern: core `jupyterlab` package uses exact pinning (==) across all notebook images to ensure UI consistency, while JupyterLab extensions and all server components (jupyter-server, jupyter-server-proxy, jupyter-server-terminals) use compatible release (~=) pinning to allow automatic security updates and bug fixes while maintaining API compatibility.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: The jupyter-bokeh package was previously pinned to version 3.0.5 in the TrustyAI notebook image due to compatibility requirements with TrustyAI components, as indicated by the comment "Should be pinned down to this version in order to be compatible with trustyai" that was removed in this update.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: The jupyter-bokeh pinning to 3.0.5 in TrustyAI notebook image was not due to TrustyAI code compatibility issues, but because the trustyai package itself explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency, causing pip dependency resolution conflicts when trying to upgrade to jupyter-bokeh 4.x.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-23T16:18:42.922Z
Learning: The TensorFlow ROCm Python 3.12 compatibility issue in opendatahub-io/notebooks PR #1259 was caused by using tensorflow-rocm==2.14.0.600 in Pipfile.lock which lacks Python 3.12 wheels, while the Pipfile specifies tensorflow_rocm=~=2.18.1. The solution requires updating Pipfile sources to include https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4/ repository which contains tensorflow_rocm-2.18.1-cp312-cp312-manylinux_2_28_x86_64.whl and regenerating Pipfile.lock using the piplock-refresh GitHub Action.
Learnt from: devcoons
PR: opendatahub-io/notebooks#1494
File: jupyter/tensorflow/ubi9-python-3.11/Pipfile:40-40
Timestamp: 2025-07-23T22:32:21.847Z
Learning: The canonical package name for the Jupyter Bokeh extension on PyPI is `jupyter_bokeh` (with underscore), not `jupyter-bokeh` (with hyphen). PyPI accepts both forms when querying but the official canonical name returned by the API is `jupyter_bokeh`. This should be used in Pipfiles to ensure consistent dependency resolution across the opendatahub-io/notebooks repository.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1325
File: jupyter/datascience/ubi9-python-3.11/Pipfile:32-32
Timestamp: 2025-07-07T14:54:57.907Z
Learning: odh-elyra uses universal wheels (py3-none-any) rather than platform-specific wheels, making it compatible with all supported Python versions through a single wheel file.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: TrustyAI explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency in both their requirements.txt and pyproject.toml files, with no open issues tracking jupyter-bokeh 4.x compatibility. This creates an unresolvable pip dependency conflict when trying to upgrade jupyter-bokeh to 4.x in notebook images that include TrustyAI.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-01T10:41:56.419Z
Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatahub-io/notebooks. They run `pipenv lock` inside UBI9 containers with specific platform arguments (`--platform=linux/amd64 --python-version 3.12`) to avoid host OS dependency conflicts when generating Pipfile.lock files.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1269
File: codeserver/ubi9-python-3.12/nginx/root/usr/share/container-scripts/nginx/common.sh:1-3
Timestamp: 2025-07-03T12:07:19.365Z
Learning: jiridanek consistently requests GitHub issue creation for technical improvements identified during code reviews in opendatahub-io/notebooks, ensuring systematic tracking of code quality enhancements like shell script portability issues with comprehensive descriptions, solution options, and acceptance criteria.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1269
File: codeserver/ubi9-python-3.12/utils/process.sh:17-19
Timestamp: 2025-07-03T14:00:00.909Z
Learning: jiridanek efficiently identifies when CodeRabbit review suggestions are already covered by existing comprehensive issues, demonstrating excellent issue management and avoiding duplicate tracking of the same improvements across multiple locations.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1151
File: jupyter/tensorflow/ubi9-python-3.12/test/test_notebook.ipynb:31-34
Timestamp: 2025-07-01T07:03:05.385Z
Learning: jiridanek demonstrates excellent pattern recognition for identifying duplicated code issues across the opendatahub-io/notebooks repository. When spotting a potential problem in test notebooks, he correctly assesses that such patterns are likely replicated across multiple similar files rather than being isolated incidents, leading to more effective systematic solutions.
📚 Learning: in the opendatahub-io/notebooks repository, the dependency pinning strategy follows a deliberate pat...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/datascience/ubi9-python-3.11/Pipfile:34-36
Timestamp: 2025-06-28T14:13:27.890Z
Learning: In the opendatahub-io/notebooks repository, the dependency pinning strategy follows a deliberate pattern: core `jupyterlab` package uses exact pinning (==) across all notebook images to ensure UI consistency, while JupyterLab extensions and all server components (jupyter-server, jupyter-server-proxy, jupyter-server-terminals) use compatible release (~=) pinning to allow automatic security updates and bug fixes while maintaining API compatibility.

Applied to files:

  • jupyter/minimal/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.12/Pipfile
  • jupyter/trustyai/ubi9-python-3.11/Pipfile
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/datascience/ubi9-python-3.11/Pipfile
  • jupyter/minimal/ubi9-python-3.11/Pipfile
  • jupyter/trustyai/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: the jupyter-bokeh package was previously pinned to version 3.0.5 in the trustyai notebook image due ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: The jupyter-bokeh package was previously pinned to version 3.0.5 in the TrustyAI notebook image due to compatibility requirements with TrustyAI components, as indicated by the comment "Should be pinned down to this version in order to be compatible with trustyai" that was removed in this update.

Applied to files:

  • jupyter/minimal/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.12/Pipfile
  • jupyter/trustyai/ubi9-python-3.11/Pipfile
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/datascience/ubi9-python-3.11/Pipfile
  • jupyter/minimal/ubi9-python-3.11/Pipfile
  • jupyter/trustyai/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: jiridanek requested verification of 2024.2 tag package versions against corresponding pipfiles durin...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-24T12:01:45.188Z
Learning: jiridanek requested verification of 2024.2 tag package versions against corresponding Pipfiles during PR #1496 review. The analysis revealed that 2024.2 tags contain intentionally frozen older versions (N-1 behavior) while the current PR correctly updates only the N (latest) tags to match Python 3.11 Pipfiles, demonstrating proper understanding of the repository's N-1 version freezing policy.

Applied to files:

  • jupyter/minimal/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.12/Pipfile
  • jupyter/trustyai/ubi9-python-3.11/Pipfile
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/datascience/ubi9-python-3.11/Pipfile
  • jupyter/minimal/ubi9-python-3.11/Pipfile
  • jupyter/trustyai/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: the jupyter-bokeh pinning to 3.0.5 in trustyai notebook image was not due to trustyai code compatibi...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: The jupyter-bokeh pinning to 3.0.5 in TrustyAI notebook image was not due to TrustyAI code compatibility issues, but because the trustyai package itself explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency, causing pip dependency resolution conflicts when trying to upgrade to jupyter-bokeh 4.x.

Applied to files:

  • jupyter/minimal/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.12/Pipfile
  • jupyter/trustyai/ubi9-python-3.11/Pipfile
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/datascience/ubi9-python-3.11/Pipfile
  • jupyter/minimal/ubi9-python-3.11/Pipfile
  • jupyter/trustyai/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: the tensorflow rocm python 3.12 compatibility issue in opendatahub-io/notebooks pr #1259 was caused ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-23T16:18:42.922Z
Learning: The TensorFlow ROCm Python 3.12 compatibility issue in opendatahub-io/notebooks PR #1259 was caused by using tensorflow-rocm==2.14.0.600 in Pipfile.lock which lacks Python 3.12 wheels, while the Pipfile specifies tensorflow_rocm=~=2.18.1. The solution requires updating Pipfile sources to include https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4/ repository which contains tensorflow_rocm-2.18.1-cp312-cp312-manylinux_2_28_x86_64.whl and regenerating Pipfile.lock using the piplock-refresh GitHub Action.

Applied to files:

  • jupyter/minimal/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.12/Pipfile
  • jupyter/trustyai/ubi9-python-3.11/Pipfile
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/datascience/ubi9-python-3.11/Pipfile
  • jupyter/minimal/ubi9-python-3.11/Pipfile
  • jupyter/trustyai/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatah...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-01T10:41:56.419Z
Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatahub-io/notebooks. They run `pipenv lock` inside UBI9 containers with specific platform arguments (`--platform=linux/amd64 --python-version 3.12`) to avoid host OS dependency conflicts when generating Pipfile.lock files.

Applied to files:

  • jupyter/minimal/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.12/Pipfile
  • jupyter/trustyai/ubi9-python-3.11/Pipfile
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/datascience/ubi9-python-3.11/Pipfile
  • jupyter/minimal/ubi9-python-3.11/Pipfile
  • jupyter/trustyai/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: trustyai's jupyter-bokeh was pinned to 3.0.5 due to compatibility requirements with trustyai's visua...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: TrustyAI's jupyter-bokeh was pinned to 3.0.5 due to compatibility requirements with TrustyAI's visualization components, but the actual deployed version in requirements.txt shows 3.0.7, indicating incremental testing. The upgrade to 4.0.5 in this PR represents the completion of a gradual migration strategy from the 3.x series after confirming compatibility with Bokeh 3.7.3.

Applied to files:

  • jupyter/minimal/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.12/Pipfile
  • jupyter/trustyai/ubi9-python-3.11/Pipfile
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/datascience/ubi9-python-3.11/Pipfile
  • jupyter/minimal/ubi9-python-3.11/Pipfile
  • jupyter/trustyai/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: jiridanek requested github issue creation for jupyter-client dependency pinning inconsistency during...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/datascience/ubi9-python-3.12/Pipfile:33-34
Timestamp: 2025-07-08T19:26:17.140Z
Learning: jiridanek requested GitHub issue creation for jupyter-client dependency pinning inconsistency during PR #1333 review, specifically asking to note the implications of breaking changes in 9.x versions. Issue #1343 was created with comprehensive problem description covering inconsistent pinning style across all Python 3.12 runtime images, detailed breaking changes analysis (kernel protocol, session management, connection security, API changes, async/await modifications), reproducibility and security impact assessment, multiple solution options with code examples, phased acceptance criteria, implementation guidance, testing approach, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Applied to files:

  • jupyter/minimal/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.11/Pipfile
  • jupyter/minimal/ubi9-python-3.11/Pipfile
  • jupyter/trustyai/ubi9-python-3.12/Pipfile
📚 Learning: the python 3.11 infrastructure for rocm tensorflow images in opendatahub-io/notebooks is already pro...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:03:45.020Z
Learning: The Python 3.11 infrastructure for ROCm TensorFlow images in opendatahub-io/notebooks is already properly configured in the Makefile with both BASE_DIRS entries for Pipfile lock renewals and all-images targets for CI builds, requiring only commenting out the corresponding Python 3.12 entries when downgrading due to wheel availability issues.

Applied to files:

  • jupyter/minimal/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.12/Pipfile
  • jupyter/trustyai/ubi9-python-3.11/Pipfile
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/minimal/ubi9-python-3.11/Pipfile
  • jupyter/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: trustyai explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency in both their requirements.tx...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: TrustyAI explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency in both their requirements.txt and pyproject.toml files, with no open issues tracking jupyter-bokeh 4.x compatibility. This creates an unresolvable pip dependency conflict when trying to upgrade jupyter-bokeh to 4.x in notebook images that include TrustyAI.

Applied to files:

  • jupyter/minimal/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.12/Pipfile
  • jupyter/trustyai/ubi9-python-3.11/Pipfile
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/datascience/ubi9-python-3.11/Pipfile
  • jupyter/minimal/ubi9-python-3.11/Pipfile
  • jupyter/trustyai/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: trustyai 0.6.1 (latest version as of june 2025) has a hard dependency constraint on jupyter-bokeh~=3...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: TrustyAI 0.6.1 (latest version as of June 2025) has a hard dependency constraint on jupyter-bokeh~=3.0.5, preventing upgrades to jupyter-bokeh 4.x in notebook images that include TrustyAI. This requires either waiting for TrustyAI to update their dependency or excluding TrustyAI from jupyter-bokeh upgrades.

Applied to files:

  • jupyter/minimal/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.12/Pipfile
  • jupyter/trustyai/ubi9-python-3.11/Pipfile
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/datascience/ubi9-python-3.11/Pipfile
  • jupyter/minimal/ubi9-python-3.11/Pipfile
  • jupyter/trustyai/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: odh-elyra uses universal wheels (py3-none-any) rather than platform-specific wheels, making it compa...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1325
File: jupyter/datascience/ubi9-python-3.11/Pipfile:32-32
Timestamp: 2025-07-07T14:54:57.907Z
Learning: odh-elyra uses universal wheels (py3-none-any) rather than platform-specific wheels, making it compatible with all supported Python versions through a single wheel file.

Applied to files:

  • jupyter/tensorflow/ubi9-python-3.12/Pipfile
  • jupyter/trustyai/ubi9-python-3.11/Pipfile
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/datascience/ubi9-python-3.11/Pipfile
  • jupyter/trustyai/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: the canonical package name for the jupyter bokeh extension on pypi is `jupyter_bokeh` (with undersco...
Learnt from: devcoons
PR: opendatahub-io/notebooks#1494
File: jupyter/tensorflow/ubi9-python-3.11/Pipfile:40-40
Timestamp: 2025-07-23T22:32:21.847Z
Learning: The canonical package name for the Jupyter Bokeh extension on PyPI is `jupyter_bokeh` (with underscore), not `jupyter-bokeh` (with hyphen). PyPI accepts both forms when querying but the official canonical name returned by the API is `jupyter_bokeh`. This should be used in Pipfiles to ensure consistent dependency resolution across the opendatahub-io/notebooks repository.

Applied to files:

  • jupyter/tensorflow/ubi9-python-3.12/Pipfile
  • jupyter/trustyai/ubi9-python-3.11/Pipfile
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/datascience/ubi9-python-3.12/Pipfile
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/datascience/ubi9-python-3.11/Pipfile
  • jupyter/trustyai/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/pytorch/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: tensorflow_rocm package versions 2.12.1.570 through 2.14.0.600 do not provide python 3.12 wheels (cp...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:03:45.020Z
Learning: tensorflow_rocm package versions 2.12.1.570 through 2.14.0.600 do not provide Python 3.12 wheels (cp312) on PyPI, causing Pipfile lock failures when attempting to create Python 3.12-based ROCm TensorFlow notebook images in opendatahub-io/notebooks.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: in the opendatahub-io/notebooks repository, there is a known issue with missing `runtimes/rocm/pytor...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-06-16T11:32:09.203Z
Learning: In the opendatahub-io/notebooks repository, there is a known issue with missing `runtimes/rocm/pytorch/ubi9-python-3.11/kustomize/base/kustomization.yaml` file that causes rocm runtime tests to fail with "no such file or directory" error. This is tracked in JIRA RHOAIENG-22044 and was intended to be fixed in PR #1015.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
📚 Learning: jiridanek requested github issue creation for tensorflow_rocm python 3.12 compatibility problem duri...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-09T08:07:24.937Z
Learning: jiridanek requested GitHub issue creation for tensorflow_rocm Python 3.12 compatibility problem during PR #1333 review. Issue #1354 was successfully created with comprehensive problem description covering missing cp312 wheels causing build failures, three solution options (upstream TensorFlow, Python 3.11 only, custom build), clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile
🔇 Additional comments (14)
jupyter/tensorflow/ubi9-python-3.12/Pipfile (1)

37-37: Upgrade to odh-elyra 4.2.3 – check JL compatibility

odh-elyra 4.2.3 claims JupyterLab 4.2 support, but its 4.2.3 wheel was published only days ago. If you haven’t already, sanity-test a notebook pipeline to confirm no regressions.

jupyter/trustyai/ubi9-python-3.11/Pipfile (2)

46-46: elyra bump acknowledged – validate with TrustyAI

TrustyAI images carry several strict pins (numpy, matplotlib, etc.). Although Elyra usually remains independent, run a quick startup test to ensure no hidden conflicts.


53-53: Lock file refresh required for jupyterlab-git

Please regenerate the lock to capture the 0.51.1 version.

jupyter/pytorch/ubi9-python-3.12/Pipfile (2)

42-42: elyra 4.2.3 – LGTM

No immediate concerns; the universal wheel should install fine on CUDA images.


49-49: Lock refresh for jupyterlab-git

Same note as above – ensure Pipfile.lock is in sync.

jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile (2)

39-39: elyra bump OK (Python 3.11)

No issues spotted; wheel is py3-none-any.


46-46: Update lock file for git extension

Regenerate the lock so 0.51.1 is pinned; prevents inadvertent downgrade at build time.

jupyter/datascience/ubi9-python-3.11/Pipfile (1)

32-39: Confirm Pipfile.lock was regenerated after version bumps

odh-elyra and jupyterlab-git have been bumped (Lines 32 & 39). Please double-check that:

  1. the corresponding Pipfile.lock for this image was rebuilt in the same containerized environment (UBI9 + pipenv lock --platform=linux/amd64 --python-version 3.11),
  2. CI still resolves these exact versions with no transitive conflicts.

This keeps the lockfile and runtime image in sync and avoids surprises during build.

jupyter/pytorch/ubi9-python-3.11/Pipfile (1)

42-49: Sync lockfile with new odh-elyra / jupyterlab-git pins

The same two packages were upgraded here. Please ensure the PyTorch image’s Pipfile.lock was refreshed and that CUDA wheels (from the extra pytorch index) continue to resolve cleanly together with the new versions.

jupyter/datascience/ubi9-python-3.12/Pipfile (1)

32-39: Re-lock after upgrading JupyterLab extensions

After bumping odh-elyra and jupyterlab-git, regenerate the 3.12 lockfile with the usual containerized command to prevent drift between Pipfile and lock.

jupyter/tensorflow/ubi9-python-3.11/Pipfile (1)

36-44: Lockfile refresh needed for TensorFlow image

Please rebuild Pipfile.lock so the TensorFlow CUDA stack is tested against the new odh-elyra 4.2.3 and jupyterlab-git 0.51.1 pins.

jupyter/trustyai/ubi9-python-3.12/Pipfile (1)

46-53: Verify TrustyAI compatibility after Elyra / Git bumps

Although trustyai constrains several deps, Elyra & JupyterLab-Git upgrades usually stay API-compatible. Still, rerun pipenv lock and a quick notebook smoke-test for this image to ensure no hidden conflicts with TrustyAI’s tight pins (jupyter-bokeh 3.0.5, specific pandas/numpy/matplotlib, …).

jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile (1)

44-51: Uniform odh-elyra and jupyterlab-git versions across Pipfiles verified
All Pipfiles reference odh-elyra ==4.2.3 and jupyterlab-git ~=0.51.1; no stray Pipfiles remain with older versions.

jupyter/minimal/ubi9-python-3.11/Pipfile (1)

15-15: Minimal image bump acknowledged – run consistency check

jupyterlab-git is now ~=0.51.1; minimal images deliberately omit odh-elyra, so no action there.
Run the same grep as above to ensure every Pipfile was updated.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
jupyter/tensorflow/ubi9-python-3.11/requirements.txt (1)

1064-1066: Keras ≥3 in a TensorFlow 2.x image can shadow tf.keras

Installing standalone keras==3.11.1 next to tensorflow==2.18.1 means both
import keras (Keras-3) and import tensorflow.keras (TF-Keras) coexist.
Accidental import keras in user notebooks silently switches to the new API,
which is not 100 % compatible with TF-Keras.

If the image does not intentionally expose Keras-3, consider removing the wheel
or setting the default backend explicitly:

ENV KERAS_BACKEND="tensorflow"

to reduce surprises.

jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt (1)

2005-2013: Optional: disable py-spy in production images

py-spy is a fantastic profiler but it injects the ptrace capability at runtime, which some hardened clusters block.
If the ROCm notebook image is meant only for end-users, consider moving this tool to dev-only requirements.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 05d1f44 and 9dc2e3b.

⛔ Files ignored due to path filters (14)
  • codeserver/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • jupyter/datascience/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • jupyter/minimal/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • jupyter/pytorch/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • jupyter/rocm/pytorch/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • jupyter/rocm/tensorflow/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • jupyter/tensorflow/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • jupyter/trustyai/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • runtimes/datascience/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • runtimes/minimal/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • runtimes/pytorch/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • runtimes/rocm-pytorch/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • runtimes/rocm-tensorflow/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
  • runtimes/tensorflow/ubi9-python-3.11/Pipfile.lock is excluded by !**/*.lock
📒 Files selected for processing (14)
  • codeserver/ubi9-python-3.11/requirements.txt (2 hunks)
  • jupyter/datascience/ubi9-python-3.11/requirements.txt (6 hunks)
  • jupyter/minimal/ubi9-python-3.11/requirements.txt (2 hunks)
  • jupyter/pytorch/ubi9-python-3.11/requirements.txt (6 hunks)
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt (6 hunks)
  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt (6 hunks)
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt (7 hunks)
  • jupyter/trustyai/ubi9-python-3.11/requirements.txt (6 hunks)
  • runtimes/datascience/ubi9-python-3.11/requirements.txt (3 hunks)
  • runtimes/minimal/ubi9-python-3.11/requirements.txt (1 hunks)
  • runtimes/pytorch/ubi9-python-3.11/requirements.txt (3 hunks)
  • runtimes/rocm-pytorch/ubi9-python-3.11/requirements.txt (3 hunks)
  • runtimes/rocm-tensorflow/ubi9-python-3.11/requirements.txt (3 hunks)
  • runtimes/tensorflow/ubi9-python-3.11/requirements.txt (4 hunks)
✅ Files skipped from review due to trivial changes (11)
  • runtimes/minimal/ubi9-python-3.11/requirements.txt
  • codeserver/ubi9-python-3.11/requirements.txt
  • jupyter/minimal/ubi9-python-3.11/requirements.txt
  • runtimes/datascience/ubi9-python-3.11/requirements.txt
  • runtimes/rocm-tensorflow/ubi9-python-3.11/requirements.txt
  • runtimes/tensorflow/ubi9-python-3.11/requirements.txt
  • runtimes/rocm-pytorch/ubi9-python-3.11/requirements.txt
  • runtimes/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/datascience/ubi9-python-3.11/requirements.txt
  • jupyter/trustyai/ubi9-python-3.11/requirements.txt
  • jupyter/pytorch/ubi9-python-3.11/requirements.txt
🧰 Additional context used
🧠 Learnings (23)
📓 Common learnings
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/test/test_notebook.ipynb:22-29
Timestamp: 2025-07-02T18:27:51.097Z
Learning: jiridanek consistently creates comprehensive follow-up GitHub issues from PR review comments in opendatahub-io/notebooks, turning specific code quality concerns into systematic improvements tracked with proper context, acceptance criteria, and cross-references. Issue #1266 demonstrates this pattern by expanding a specific error handling concern in load_expected_versions() into a repository-wide improvement initiative.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1379
File: .tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-push.yaml:14-17
Timestamp: 2025-07-11T11:15:47.424Z
Learning: jiridanek requested GitHub issue creation for CEL filter problem in datascience workbench Tekton pipelines during PR #1379 review. Issue #1383 was successfully created with comprehensive problem description covering both Python 3.11 and 3.12 pipelines incorrectly watching jupyter/minimal directories instead of jupyter/datascience directories, detailed impact analysis of pipeline execution failures, complete solution with before/after code examples, thorough acceptance criteria for path updates and pipeline triggering verification, implementation notes about repository structure alignment, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/test/test_notebook.ipynb:112-126
Timestamp: 2025-07-08T13:21:09.150Z
Learning: jiridanek requested GitHub issue creation for notebook linting and formatting improvements during PR #1306 review, specifically to address inconsistent metadata across .ipynb files and implement systematic quality standards. This continues the established pattern of comprehensive issue creation for code quality improvements with detailed problem descriptions, multiple solution options, phased acceptance criteria, and proper context linking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-24T12:01:45.188Z
Learning: jiridanek requested verification of 2024.2 tag package versions against corresponding Pipfiles during PR #1496 review. The analysis revealed that 2024.2 tags contain intentionally frozen older versions (N-1 behavior) while the current PR correctly updates only the N (latest) tags to match Python 3.11 Pipfiles, demonstrating proper understanding of the repository's N-1 version freezing policy.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T14:46:03.215Z
Learning: jiridanek requested GitHub issue creation for two nitpicks during PR #1588 review: comment wording improvement in ROCm TensorFlow Dockerfile and typo fix in Jupyter DataScience Dockerfile stage header. Issues #1589 and #1590 were successfully created with comprehensive problem descriptions, specific file locations and line numbers, clear before/after solutions, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/datascience/ubi9-python-3.12/Pipfile:33-34
Timestamp: 2025-07-08T19:26:17.140Z
Learning: jiridanek requested GitHub issue creation for jupyter-client dependency pinning inconsistency during PR #1333 review, specifically asking to note the implications of breaking changes in 9.x versions. Issue #1343 was created with comprehensive problem description covering inconsistent pinning style across all Python 3.12 runtime images, detailed breaking changes analysis (kernel protocol, session management, connection security, API changes, async/await modifications), reproducibility and security impact assessment, multiple solution options with code examples, phased acceptance criteria, implementation guidance, testing approach, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for RStudio py311 Tekton push pipelines during PR #1379 review. Issue #1384 was successfully created covering two RStudio variants (CPU and CUDA) found in manifests/base/params-latest.env, with comprehensive problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1325
File: jupyter/pytorch/ubi9-python-3.12/Pipfile:42-42
Timestamp: 2025-07-09T14:22:14.553Z
Learning: jiridanek requested GitHub issue creation for Pipfile.lock verification script implementation during PR #1325 review, specifically to systematize the manual verification process for dependency version consistency across all lock files using jq. Issue #1367 was created with comprehensive problem description covering manual verification challenges, detailed solution with jq-based verification script, enhanced features for CI integration, clear acceptance criteria, implementation areas breakdown, benefits analysis, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-pytorch/ubi9-python-3.12/de-vendor-torch.sh:9-12
Timestamp: 2025-07-08T19:28:15.791Z
Learning: jiridanek requested GitHub issue creation for runtime detection improvement of Python site-packages paths during PR #1333 review. Issue #1344 was created with comprehensive problem description covering hard-coded path fragility across UBI9 distributions, extensive affected files analysis including 4 de-vendor scripts, 30+ Dockerfiles with chmod operations, and 12+ pip.conf configurations, runtime detection solution using sysconfig module, implementation areas breakdown, benefits analysis, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Dockerfile.rocm:56-66
Timestamp: 2025-07-02T18:19:49.397Z
Learning: jiridanek consistently creates comprehensive follow-up GitHub issues for security concerns raised during PR reviews in opendatahub-io/notebooks, ensuring systematic tracking and resolution of supply-chain security improvements like GPG signature verification for package repositories.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: TrustyAI's jupyter-bokeh was pinned to 3.0.5 due to compatibility requirements with TrustyAI's visualization components, but the actual deployed version in requirements.txt shows 3.0.7, indicating incremental testing. The upgrade to 4.0.5 in this PR represents the completion of a gradual migration strategy from the 3.x series after confirming compatibility with Bokeh 3.7.3.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: The jupyter-bokeh package was previously pinned to version 3.0.5 in the TrustyAI notebook image due to compatibility requirements with TrustyAI components, as indicated by the comment "Should be pinned down to this version in order to be compatible with trustyai" that was removed in this update.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/datascience/ubi9-python-3.11/Pipfile:34-36
Timestamp: 2025-06-28T14:13:27.890Z
Learning: In the opendatahub-io/notebooks repository, the dependency pinning strategy follows a deliberate pattern: core `jupyterlab` package uses exact pinning (==) across all notebook images to ensure UI consistency, while JupyterLab extensions and all server components (jupyter-server, jupyter-server-proxy, jupyter-server-terminals) use compatible release (~=) pinning to allow automatic security updates and bug fixes while maintaining API compatibility.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-23T16:18:42.922Z
Learning: The TensorFlow ROCm Python 3.12 compatibility issue in opendatahub-io/notebooks PR #1259 was caused by using tensorflow-rocm==2.14.0.600 in Pipfile.lock which lacks Python 3.12 wheels, while the Pipfile specifies tensorflow_rocm=~=2.18.1. The solution requires updating Pipfile sources to include https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4/ repository which contains tensorflow_rocm-2.18.1-cp312-cp312-manylinux_2_28_x86_64.whl and regenerating Pipfile.lock using the piplock-refresh GitHub Action.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: TrustyAI explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency in both their requirements.txt and pyproject.toml files, with no open issues tracking jupyter-bokeh 4.x compatibility. This creates an unresolvable pip dependency conflict when trying to upgrade jupyter-bokeh to 4.x in notebook images that include TrustyAI.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-01T10:41:56.419Z
Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatahub-io/notebooks. They run `pipenv lock` inside UBI9 containers with specific platform arguments (`--platform=linux/amd64 --python-version 3.12`) to avoid host OS dependency conflicts when generating Pipfile.lock files.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: The jupyter-bokeh pinning to 3.0.5 in TrustyAI notebook image was not due to TrustyAI code compatibility issues, but because the trustyai package itself explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency, causing pip dependency resolution conflicts when trying to upgrade to jupyter-bokeh 4.x.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1519
File: jupyter/pytorch+llmcompressor/ubi9-python-3.11/runtime-images/llmcompressor-pytorch-ubi9-py311.json:2-9
Timestamp: 2025-07-29T16:00:31.637Z
Learning: jiridanek indicated that the current practice for runtime-images JSON files in opendatahub-io/notebooks has changed significantly from the SHA256 digest pinning pattern, and that rebasing PR #1519 would reveal the new practice which is "something completely different" from the existing pattern.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1269
File: codeserver/ubi9-python-3.12/nginx/root/usr/share/container-scripts/nginx/common.sh:1-3
Timestamp: 2025-07-03T12:07:19.365Z
Learning: jiridanek consistently requests GitHub issue creation for technical improvements identified during code reviews in opendatahub-io/notebooks, ensuring systematic tracking of code quality enhancements like shell script portability issues with comprehensive descriptions, solution options, and acceptance criteria.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1269
File: codeserver/ubi9-python-3.12/utils/process.sh:17-19
Timestamp: 2025-07-03T14:00:00.909Z
Learning: jiridanek efficiently identifies when CodeRabbit review suggestions are already covered by existing comprehensive issues, demonstrating excellent issue management and avoiding duplicate tracking of the same improvements across multiple locations.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1151
File: jupyter/tensorflow/ubi9-python-3.12/test/test_notebook.ipynb:31-34
Timestamp: 2025-07-01T07:03:05.385Z
Learning: jiridanek demonstrates excellent pattern recognition for identifying duplicated code issues across the opendatahub-io/notebooks repository. When spotting a potential problem in test notebooks, he correctly assesses that such patterns are likely replicated across multiple similar files rather than being isolated incidents, leading to more effective systematic solutions.
📚 Learning: the tensorflow rocm python 3.12 compatibility issue in opendatahub-io/notebooks pr #1259 was caused ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-23T16:18:42.922Z
Learning: The TensorFlow ROCm Python 3.12 compatibility issue in opendatahub-io/notebooks PR #1259 was caused by using tensorflow-rocm==2.14.0.600 in Pipfile.lock which lacks Python 3.12 wheels, while the Pipfile specifies tensorflow_rocm=~=2.18.1. The solution requires updating Pipfile sources to include https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4/ repository which contains tensorflow_rocm-2.18.1-cp312-cp312-manylinux_2_28_x86_64.whl and regenerating Pipfile.lock using the piplock-refresh GitHub Action.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: jiridanek requested github issue creation for tensorflow_rocm python 3.12 compatibility problem duri...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-09T08:07:24.937Z
Learning: jiridanek requested GitHub issue creation for tensorflow_rocm Python 3.12 compatibility problem during PR #1333 review. Issue #1354 was successfully created with comprehensive problem description covering missing cp312 wheels causing build failures, three solution options (upstream TensorFlow, Python 3.11 only, custom build), clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: tensorflow_rocm package versions 2.12.1.570 through 2.14.0.600 do not provide python 3.12 wheels (cp...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:03:45.020Z
Learning: tensorflow_rocm package versions 2.12.1.570 through 2.14.0.600 do not provide Python 3.12 wheels (cp312) on PyPI, causing Pipfile lock failures when attempting to create Python 3.12-based ROCm TensorFlow notebook images in opendatahub-io/notebooks.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: the python 3.11 infrastructure for rocm tensorflow images in opendatahub-io/notebooks is already pro...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:03:45.020Z
Learning: The Python 3.11 infrastructure for ROCm TensorFlow images in opendatahub-io/notebooks is already properly configured in the Makefile with both BASE_DIRS entries for Pipfile lock renewals and all-images targets for CI builds, requiring only commenting out the corresponding Python 3.12 entries when downgrading due to wheel availability issues.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: trustyai's jupyter-bokeh was pinned to 3.0.5 due to compatibility requirements with trustyai's visua...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: TrustyAI's jupyter-bokeh was pinned to 3.0.5 due to compatibility requirements with TrustyAI's visualization components, but the actual deployed version in requirements.txt shows 3.0.7, indicating incremental testing. The upgrade to 4.0.5 in this PR represents the completion of a gradual migration strategy from the 3.x series after confirming compatibility with Bokeh 3.7.3.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: rocm is not supported by upstream tensorflow, unlike cuda. rocm support requires the specialized ten...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-14T15:36:29.815Z
Learning: ROCm is not supported by upstream TensorFlow, unlike CUDA. ROCm support requires the specialized tensorflow_rocm package, which creates a dependency challenge for Python 3.12 environments since tensorflow_rocm lacks Python 3.12 wheels while regular TensorFlow lacks ROCm support.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: tensorflow_rocm package has no python 3.12 or 3.13 wheel support as of july 2025, with the latest ve...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:05:33.329Z
Learning: tensorflow_rocm package has no Python 3.12 or 3.13 wheel support as of July 2025, with the latest version 2.14.0.600 only supporting Python 3.9, 3.10, and 3.11. The tensorflow-rocm upstream project appears abandoned with the last release in 2019. For Python 3.12+ ROCm TensorFlow environments, regular TensorFlow 2.18+ with runtime ROCm configuration is the recommended and industry-standard approach, as modern TensorFlow automatically detects and utilizes ROCm when properly installed.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: the jupyter-bokeh package was previously pinned to version 3.0.5 in the trustyai notebook image due ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: The jupyter-bokeh package was previously pinned to version 3.0.5 in the TrustyAI notebook image due to compatibility requirements with TrustyAI components, as indicated by the comment "Should be pinned down to this version in order to be compatible with trustyai" that was removed in this update.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: tensorflow_rocm package has no python 3.12 or 3.13 wheel support as of july 2025, with the latest ve...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:05:33.329Z
Learning: tensorflow_rocm package has no Python 3.12 or 3.13 wheel support as of July 2025, with the latest version 2.14.0.600 only supporting Python 3.9, 3.10, and 3.11. For Python 3.12+ ROCm TensorFlow environments, regular TensorFlow with runtime ROCm configuration is the recommended alternative approach.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: jiridanek requested github issue creation for jupyter-client dependency pinning inconsistency during...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/datascience/ubi9-python-3.12/Pipfile:33-34
Timestamp: 2025-07-08T19:26:17.140Z
Learning: jiridanek requested GitHub issue creation for jupyter-client dependency pinning inconsistency during PR #1333 review, specifically asking to note the implications of breaking changes in 9.x versions. Issue #1343 was created with comprehensive problem description covering inconsistent pinning style across all Python 3.12 runtime images, detailed breaking changes analysis (kernel protocol, session management, connection security, API changes, async/await modifications), reproducibility and security impact assessment, multiple solution options with code examples, phased acceptance criteria, implementation guidance, testing approach, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: jiridanek identified that arm64 wheels for h5py 3.14.0 are available on pypi but being ignored due t...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1396
File: runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda:124-127
Timestamp: 2025-07-20T20:47:36.509Z
Learning: jiridanek identified that ARM64 wheels for h5py 3.14.0 are available on PyPI but being ignored due to AMD64-only dependency locking with --platform=linux/amd64. This causes unnecessary hdf5-devel package installation in ARM64 TensorFlow images when the ARM64 wheel h5py-3.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl could be used instead. The Pipfile.lock only contains 2 hashes for h5py, confirming limited platform consideration during lock generation.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: grdryn corrected coderabbit's false assessment about cuda companion package wheel availability durin...
Learnt from: grdryn
PR: opendatahub-io/notebooks#1396
File: jupyter/tensorflow/ubi9-python-3.12/Pipfile:13-14
Timestamp: 2025-07-16T00:17:10.313Z
Learning: grdryn corrected CodeRabbit's false assessment about CUDA companion package wheel availability during PR #1396 review. The original analysis incorrectly checked all package releases instead of the specific versions that would be installed with tensorflow[and-cuda]~=2.19.0. The actual versions (nvidia-cudnn-cu12/9.3.0.75, nvidia-cuda-runtime-cu12/12.5.82, nvidia-cublas-cu12/12.5.3.2) do have aarch64 wheels available on PyPI, making the and-cuda extra compatible with arm64 builds.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: pytorch 2.6.0 wheels with cuda 12.4 support (torch-2.6.0+cu124) are available on the official pytorc...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1463
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:15-15
Timestamp: 2025-07-22T14:31:20.315Z
Learning: PyTorch 2.6.0 wheels with CUDA 12.4 support (torch-2.6.0+cu124) are available on the official PyTorch CUDA index at https://download.pytorch.org/whl/cu124/ for Python versions 3.9, 3.10, 3.11, 3.12, and 3.13 on both Linux x86_64 and Windows AMD64 platforms.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: jiridanek requested verification of 2024.2 tag package versions against corresponding pipfiles durin...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-24T12:01:45.188Z
Learning: jiridanek requested verification of 2024.2 tag package versions against corresponding Pipfiles during PR #1496 review. The analysis revealed that 2024.2 tags contain intentionally frozen older versions (N-1 behavior) while the current PR correctly updates only the N (latest) tags to match Python 3.11 Pipfiles, demonstrating proper understanding of the repository's N-1 version freezing policy.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: trustyai 0.6.1 (latest version as of june 2025) has a hard dependency constraint on jupyter-bokeh~=3...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: TrustyAI 0.6.1 (latest version as of June 2025) has a hard dependency constraint on jupyter-bokeh~=3.0.5, preventing upgrades to jupyter-bokeh 4.x in notebook images that include TrustyAI. This requires either waiting for TrustyAI to update their dependency or excluding TrustyAI from jupyter-bokeh upgrades.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: in the opendatahub-io/notebooks repository, the dependency pinning strategy follows a deliberate pat...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/datascience/ubi9-python-3.11/Pipfile:34-36
Timestamp: 2025-06-28T14:13:27.890Z
Learning: In the opendatahub-io/notebooks repository, the dependency pinning strategy follows a deliberate pattern: core `jupyterlab` package uses exact pinning (==) across all notebook images to ensure UI consistency, while JupyterLab extensions and all server components (jupyter-server, jupyter-server-proxy, jupyter-server-terminals) use compatible release (~=) pinning to allow automatic security updates and bug fixes while maintaining API compatibility.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: trustyai explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency in both their requirements.tx...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: TrustyAI explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency in both their requirements.txt and pyproject.toml files, with no open issues tracking jupyter-bokeh 4.x compatibility. This creates an unresolvable pip dependency conflict when trying to upgrade jupyter-bokeh to 4.x in notebook images that include TrustyAI.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: the jupyter-bokeh pinning to 3.0.5 in trustyai notebook image was not due to trustyai code compatibi...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: The jupyter-bokeh pinning to 3.0.5 in TrustyAI notebook image was not due to TrustyAI code compatibility issues, but because the trustyai package itself explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency, causing pip dependency resolution conflicts when trying to upgrade to jupyter-bokeh 4.x.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatah...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-01T10:41:56.419Z
Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatahub-io/notebooks. They run `pipenv lock` inside UBI9 containers with specific platform arguments (`--platform=linux/amd64 --python-version 3.12`) to avoid host OS dependency conflicts when generating Pipfile.lock files.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: odh-elyra uses universal wheels (py3-none-any) rather than platform-specific wheels, making it compa...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1325
File: jupyter/datascience/ubi9-python-3.11/Pipfile:32-32
Timestamp: 2025-07-07T14:54:57.907Z
Learning: odh-elyra uses universal wheels (py3-none-any) rather than platform-specific wheels, making it compatible with all supported Python versions through a single wheel file.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: in the opendatahub-io/notebooks repository, the test runner's python version (configured in github a...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1247
File: .github/workflows/build-notebooks-TEMPLATE.yaml:50-53
Timestamp: 2025-07-01T14:36:52.852Z
Learning: In the opendatahub-io/notebooks repository, the test runner's Python version (configured in GitHub Actions UV setup) intentionally doesn't need to match the Python version of the container images being tested. jiridanek's team uses Python 3.12 for running tests while images may use different Python versions (like 3.11), and this approach works fine since the test code is separate from the application code running inside the containers.

Applied to files:

  • jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.11/requirements.txt
📚 Learning: in the opendatahub-io/notebooks repository, there is a known issue with missing `runtimes/rocm/pytor...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-06-16T11:32:09.203Z
Learning: In the opendatahub-io/notebooks repository, there is a known issue with missing `runtimes/rocm/pytorch/ubi9-python-3.11/kustomize/base/kustomization.yaml` file that causes rocm runtime tests to fail with "no such file or directory" error. This is tracked in JIRA RHOAIENG-22044 and was intended to be fixed in PR #1015.

Applied to files:

  • jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt
🔇 Additional comments (16)
jupyter/tensorflow/ubi9-python-3.11/requirements.txt (6)

118-144: Confirm argon2-cffi / bindings stay in lock-step

argon2-cffi-bindings==25.1.0 now matches argon2-cffi==25.1.0 (Line 115). 👍
Just double-check that no other runtime image still carries an older argon2-cffi to avoid ABI mismatches across shared volumes.


1046-1048: jupyterlab-git 0.51 ⇢ 0.51.2 – test the server extension

0.51.2 bumps the minimum JupyterLab requirement to 4.1+. We are on 4.2.7, so version bounds are satisfied.
Run a quick notebook pod and verify that:

jupyter labextension list | grep jupyterlab-git

still shows the extension enabled and the Git sidebar opens without JS errors.


1244-1255: matplotlib patch upgrade – no breaking changes noticed

3.10.5 only bundles security fixes (CVE-2024-4368) and a handful of bug-fixes.
Good to take. No action required.


1672-1674: odh-elyra 4.2.3 bump aligns with PR goal

The sole purpose of the PR is fulfilled here. ✔️
No compatibility concerns – odh-elyra wheels are py3-none-any.


2159-2166: py-spy 0.4.1 brings Python 3.12 support

Nothing else changes. Safe upgrade.


2322-2324: PyGithub 2.6 → 2.7 – check for deprecated attributes

2.7.0 removed a few alias properties (last_modifiedlastModified, etc.).
Grepping our repo shows we never used those, so we’re fine.
If you run any ad-hoc automation scripts, give them a smoke test.

jupyter/rocm/pytorch/ubi9-python-3.11/requirements.txt (5)

119-145: Double-check wheel availability for argon2-cffi-bindings==25.1.0 on all build arches

argon2-cffi-bindings 25.1.0 is ABI-tied and ships wheels only for mainstream CPython/GLIBC combinations.
Please verify that:

  1. A matching wheel exists for every architecture you build (x86_64 & aarch64 if applicable).
  2. No tool-chain packages are silently pulled in to compile it from source during image build (gcc, python-dev, etc.).

A quick ripgrep on the OCI build logs usually surfaces unexpected compilations.


1007-1009: Confirm jupyterlab-git==0.51.2 extension build succeeds inside the image

The 0.51.x line targets JupyterLab 4 and still performs a full labextension build at image-build time.
On UBI9 minimal images the Node/NPM tool-chain is often absent or pinned very tightly—failed builds will merely log and leave the extension disabled.

Please run the image build once and grep the output for Build completed successfully or ERROR webpack.
If you need a reproducible build, consider adding nodejs + npm explicit pins to the Dockerfile runtime layer.


1194-1249: Matplotlib 3.10.5 is fine – nothing further

The minor bump from 3.10.3 → 3.10.5 keeps the same Python ≥3.10 requirement; no additional native deps were introduced. ✅


1559-1561: odh-elyra 4.2.3 bump looks good

No compatibility changes in this micro-release; wheel is universal (py3-none-any).
No action needed.


2114-2116: Validate GitHub API quota handling after bump to PyGithub==2.7.0

2.7.0 raises the default retry interval for secondary-rate-limited responses.
If any notebook logic expects the former shorter back-off, behaviour will change.

No code changes here, but please keep it in mind for dependent examples/pipelines.

jupyter/rocm/tensorflow/ubi9-python-3.11/requirements.txt (5)

118-144: Verify wheel availability for argon2-cffi‐bindings==25.1.0 on all target architectures

The project occasionally builds ARM 64 images. 25.1.0 doesn’t yet provide cp311 wheels for aarch64 on PyPI, which will force a source build and pull in a full tool-chain at image-build time.

Please confirm that (a) we only build x86_64 here or (b) an aarch64 wheel is indeed present in the private cache.
If not, consider pinning to 24.2.x for the ROCm image only.


1049-1051: jupyterlab-git bump LGTM

0.51.2 is the latest release compatible with JupyterLab 4.x and removes several CVEs found in 0.50.x.


1250-1305: Large Matplotlib upgrade ‒ check image size & build time

3.10.x ships many-linux 2_28 wheels, but they are ~30 MB larger than 3.10.3.
Given this image already carries both TensorFlow + ROCm libraries, the extra weight is noticeable.

If size matters for the ROCm flavours, pinning to 3.10.3 until the next pruning round might be worthwhile.


1611-1613: PR objective satisfied – odh-elyra 4.2.3 is in place

No further action required.


2169-2171: PyGithub bump looks safe

2.7.0 contains only dependency cleanup; API surface is unchanged. 👍

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jupyter/tensorflow/ubi9-python-3.11/requirements.txt (1)
1064-1066: Keras ≥3 in a TensorFlow 2.x image can shadow tf.keras

Installing standalone keras==3.11.1 next to tensorflow==2.18.1 means both
import keras (Keras-3) and import tensorflow.keras (TF-Keras) coexist.
Accidental import keras in user notebooks silently switches to the new API,
which is not 100 % compatible with TF-Keras.

If the image does not intentionally expose Keras-3, consider removing the wheel
or setting the default backend explicitly:

ENV KERAS_BACKEND="tensorflow"
to reduce surprises.

@coderabbitai I am confused about this. Please create github issue that describes the situation clearly.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧩 Analysis chain

I'll create a comprehensive GitHub issue to clearly describe the Keras 3 / TensorFlow compatibility concern.

@jiridanek I've created a comprehensive GitHub issue that clearly describes the Keras 3 / TensorFlow compatibility situation. The issue covers:

  • Problem description: How having both Keras 3.x and tf.keras can cause confusion
  • Impact analysis: Potential for silent API switching and debugging confusion
  • Multiple solution options: From removing standalone Keras to setting explicit backends
  • Clear acceptance criteria: Specific steps to resolve the issue
  • Proper context: Links back to this PR and comment thread

The issue follows your established pattern of systematic technical improvement tracking with detailed problem descriptions, solution options, and implementation guidance.


🏁 Script executed:

#!/bin/bash
# Create GitHub issue for Keras 3 / TensorFlow compatibility problem
gh issue create \
  --title "Keras 3 / TensorFlow compatibility: Potential API confusion in TensorFlow notebook images" \
  --body "## Problem Description

The TensorFlow notebook images currently install both standalone Keras 3.x and TensorFlow 2.x, which creates a potential source of confusion and subtle bugs for users.

### Current Situation
- **TensorFlow version**: 2.18.1 (bundles tf.keras based on Keras 2.x API)
- **Standalone Keras version**: 3.11.1 (new Keras 3.x API)
- **Affected images**: All TensorFlow-based notebook images

### The Problem
When both packages are installed, users have access to two different Keras APIs:
1. \`import keras\` → Keras 3.x (new API, different behavior)
2. \`import tensorflow.keras\` → tf.keras (Keras 2.x API, TensorFlow's bundled version)

### Impact
- **Silent API switching**: Users who accidentally use \`import keras\` instead of \`import tensorflow.keras\` get different behavior
- **API incompatibilities**: Keras 3.x is not 100% compatible with tf.keras/Keras 2.x
- **Debugging confusion**: Errors may be confusing when mixing APIs
- **Documentation mismatch**: TensorFlow tutorials expect tf.keras, not standalone Keras 3.x

### Example Scenarios
\`\`\`python
# User expects TensorFlow's Keras (common in TF tutorials)
import keras  # ❌ Gets Keras 3.x instead of tf.keras
model = keras.Sequential([...])  # May behave differently than expected

# vs. intended usage
import tensorflow.keras as keras  # ✅ Gets tf.keras as expected
model = keras.Sequential([...])  # Behaves as TensorFlow tutorials show
\`\`\`

## Solution Options

### Option 1: Remove Standalone Keras (Recommended)
Remove \`keras==3.11.1\` from requirements.txt and rely solely on tf.keras bundled with TensorFlow.

**Pros:**
- Eliminates confusion
- Maintains consistency with TensorFlow ecosystem
- Follows TensorFlow best practices

**Cons:**
- Users cannot access Keras 3.x features
- May break existing notebooks that explicitly use Keras 3.x

### Option 2: Set Default Backend
Keep both but set explicit backend environment variable:
\`\`\`dockerfile
ENV KERAS_BACKEND=\"tensorflow\"
\`\`\`

**Pros:**
- Provides access to both APIs
- Makes default behavior explicit

**Cons:**
- Still allows for confusion
- Requires user awareness of the distinction

### Option 3: Documentation and Examples
Keep current setup but add clear documentation about the two APIs.

**Pros:**
- Maximum flexibility
- Educational value

**Cons:**
- Highest confusion potential
- Requires extensive documentation

## Acceptance Criteria

- [ ] Decision made on which solution approach to implement
- [ ] If removing standalone Keras: Update all affected requirements.txt files
- [ ] If keeping both: Add KERAS_BACKEND environment variable to Dockerfiles
- [ ] Update any example notebooks that might be affected
- [ ] Test that TensorFlow tutorials work as expected
- [ ] Document the chosen approach in README or relevant documentation

## Files Affected

Based on the current PR, at minimum:
- \`jupyter/tensorflow/ubi9-python-3.11/requirements.txt\`
- Potentially other TensorFlow image requirements.txt files
- Corresponding Dockerfiles if environment variables are added

## Context

- **Related PR**: #1591
- **Comment thread**: https://github.com/opendatahub-io/notebooks/pull/1591#discussion_r2248331257
- **Identified during**: Dependency update review

## References

- [Keras 3.0 Migration Guide](https://keras.io/guides/migrating_to_keras_3/)
- [TensorFlow Keras vs Standalone Keras](https://www.tensorflow.org/guide/keras)
" \
  --assignee jiridanek

Length of output: 3597


Perfect! I've successfully created GitHub issue #1594 that clearly describes the Keras 3 / TensorFlow compatibility situation. The issue provides:

Comprehensive Problem Analysis:

  • Clear explanation of how standalone Keras 3.x and tf.keras coexist
  • Specific version details (TensorFlow 2.18.1 vs Keras 3.11.1)
  • Real-world impact scenarios with code examples

Multiple Solution Approaches:

  1. Remove standalone Keras (recommended)
  2. Set explicit backend environment variable
  3. Documentation-based approach

Implementation Details:

  • Clear acceptance criteria with checkboxes
  • Affected files identification
  • Proper context linking to this PR and comment thread

The issue is now tracked as #1594 and assigned to you for decision-making on the best approach to resolve this potential API confusion in TensorFlow notebook images.


✏️ Learnings added
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1591
File: codeserver/ubi9-python-3.11/Pipfile.lock:1-1
Timestamp: 2025-08-01T16:03:18.704Z
Learning: jiridanek requested GitHub issue creation for Keras 3 / TensorFlow API compatibility problem during PR #1591 review. Issue #1594 was successfully created with comprehensive problem description covering API confusion between standalone keras==3.11.1 and tf.keras bundled with tensorflow==2.18.1, multiple solution options (remove standalone Keras, set KERAS_BACKEND, or documentation), clear acceptance criteria, affected files analysis, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


🧠 Learnings used
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-01T10:41:56.419Z
Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatahub-io/notebooks. They run `pipenv lock` inside UBI9 containers with specific platform arguments (`--platform=linux/amd64 --python-version 3.12`) to avoid host OS dependency conflicts when generating Pipfile.lock files.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-23T16:18:42.922Z
Learning: The TensorFlow ROCm Python 3.12 compatibility issue in opendatahub-io/notebooks PR #1259 was caused by using tensorflow-rocm==2.14.0.600 in Pipfile.lock which lacks Python 3.12 wheels, while the Pipfile specifies tensorflow_rocm=~=2.18.1. The solution requires updating Pipfile sources to include https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4/ repository which contains tensorflow_rocm-2.18.1-cp312-cp312-manylinux_2_28_x86_64.whl and regenerating Pipfile.lock using the piplock-refresh GitHub Action.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1396
File: runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda:124-127
Timestamp: 2025-07-20T20:47:36.509Z
Learning: jiridanek identified that ARM64 wheels for h5py 3.14.0 are available on PyPI but being ignored due to AMD64-only dependency locking with --platform=linux/amd64. This causes unnecessary hdf5-devel package installation in ARM64 TensorFlow images when the ARM64 wheel h5py-3.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl could be used instead. The Pipfile.lock only contains 2 hashes for h5py, confirming limited platform consideration during lock generation.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-24T12:01:45.188Z
Learning: jiridanek requested verification of 2024.2 tag package versions against corresponding Pipfiles during PR #1496 review. The analysis revealed that 2024.2 tags contain intentionally frozen older versions (N-1 behavior) while the current PR correctly updates only the N (latest) tags to match Python 3.11 Pipfiles, demonstrating proper understanding of the repository's N-1 version freezing policy.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:03:45.020Z
Learning: The Python 3.11 infrastructure for ROCm TensorFlow images in opendatahub-io/notebooks is already properly configured in the Makefile with both BASE_DIRS entries for Pipfile lock renewals and all-images targets for CI builds, requiring only commenting out the corresponding Python 3.12 entries when downgrading due to wheel availability issues.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: TrustyAI explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency in both their requirements.txt and pyproject.toml files, with no open issues tracking jupyter-bokeh 4.x compatibility. This creates an unresolvable pip dependency conflict when trying to upgrade jupyter-bokeh to 4.x in notebook images that include TrustyAI.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-01T10:41:56.419Z
Learning: In the opendatahub-io/notebooks repository, TensorFlow packages with `extras = ["and-cuda"]` can cause build conflicts on macOS due to platform-specific CUDA packages. When the Dockerfile installs CUDA system-wide, removing the extras and letting TensorFlow find CUDA at runtime resolves these conflicts.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: The jupyter-bokeh pinning to 3.0.5 in TrustyAI notebook image was not due to TrustyAI code compatibility issues, but because the trustyai package itself explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency, causing pip dependency resolution conflicts when trying to upgrade to jupyter-bokeh 4.x.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/kustomize/base/kustomization.yaml:8-12
Timestamp: 2025-07-08T19:09:48.746Z
Learning: jiridanek requested GitHub issue creation for misleading CUDA prefix in TrustyAI image tags during PR #1306 review, affecting both Python 3.11 and 3.12 versions. Issue #1338 was created with comprehensive problem description covering both affected images, repository pattern analysis comparing correct vs incorrect naming conventions, clear solution with code examples, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-09T08:07:24.937Z
Learning: jiridanek requested GitHub issue creation for tensorflow_rocm Python 3.12 compatibility problem during PR #1333 review. Issue #1354 was successfully created with comprehensive problem description covering missing cp312 wheels causing build failures, three solution options (upstream TensorFlow, Python 3.11 only, custom build), clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: TrustyAI 0.6.1 (latest version as of June 2025) has a hard dependency constraint on jupyter-bokeh~=3.0.5, preventing upgrades to jupyter-bokeh 4.x in notebook images that include TrustyAI. This requires either waiting for TrustyAI to update their dependency or excluding TrustyAI from jupyter-bokeh upgrades.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/datascience/ubi9-python-3.12/Pipfile:33-34
Timestamp: 2025-07-08T19:26:17.140Z
Learning: jiridanek requested GitHub issue creation for jupyter-client dependency pinning inconsistency during PR #1333 review, specifically asking to note the implications of breaking changes in 9.x versions. Issue #1343 was created with comprehensive problem description covering inconsistent pinning style across all Python 3.12 runtime images, detailed breaking changes analysis (kernel protocol, session management, connection security, API changes, async/await modifications), reproducibility and security impact assessment, multiple solution options with code examples, phased acceptance criteria, implementation guidance, testing approach, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:03:45.020Z
Learning: tensorflow_rocm package versions 2.12.1.570 through 2.14.0.600 do not provide Python 3.12 wheels (cp312) on PyPI, causing Pipfile lock failures when attempting to create Python 3.12-based ROCm TensorFlow notebook images in opendatahub-io/notebooks.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-14T15:36:29.815Z
Learning: ROCm is not supported by upstream TensorFlow, unlike CUDA. ROCm support requires the specialized tensorflow_rocm package, which creates a dependency challenge for Python 3.12 environments since tensorflow_rocm lacks Python 3.12 wheels while regular TensorFlow lacks ROCm support.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: The jupyter-bokeh package was previously pinned to version 3.0.5 in the TrustyAI notebook image due to compatibility requirements with TrustyAI components, as indicated by the comment "Should be pinned down to this version in order to be compatible with trustyai" that was removed in this update.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:05:33.329Z
Learning: tensorflow_rocm package has no Python 3.12 or 3.13 wheel support as of July 2025, with the latest version 2.14.0.600 only supporting Python 3.9, 3.10, and 3.11. For Python 3.12+ ROCm TensorFlow environments, regular TensorFlow with runtime ROCm configuration is the recommended alternative approach.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1269
File: codeserver/ubi9-python-3.12/nginx/root/usr/share/container-scripts/nginx/common.sh:1-3
Timestamp: 2025-07-03T12:07:19.365Z
Learning: jiridanek consistently requests GitHub issue creation for technical improvements identified during code reviews in opendatahub-io/notebooks, ensuring systematic tracking of code quality enhancements like shell script portability issues with comprehensive descriptions, solution options, and acceptance criteria.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1269
File: codeserver/ubi9-python-3.12/utils/process.sh:17-19
Timestamp: 2025-07-03T14:00:00.909Z
Learning: jiridanek efficiently identifies when CodeRabbit review suggestions are already covered by existing comprehensive issues, demonstrating excellent issue management and avoiding duplicate tracking of the same improvements across multiple locations.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1151
File: jupyter/tensorflow/ubi9-python-3.12/test/test_notebook.ipynb:31-34
Timestamp: 2025-07-01T07:03:05.385Z
Learning: jiridanek demonstrates excellent pattern recognition for identifying duplicated code issues across the opendatahub-io/notebooks repository. When spotting a potential problem in test notebooks, he correctly assesses that such patterns are likely replicated across multiple similar files rather than being isolated incidents, leading to more effective systematic solutions.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Dockerfile.rocm:56-66
Timestamp: 2025-07-02T18:19:49.397Z
Learning: jiridanek consistently creates comprehensive follow-up GitHub issues for security concerns raised during PR reviews in opendatahub-io/notebooks, ensuring systematic tracking and resolution of supply-chain security improvements like GPG signature verification for package repositories.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/test/test_notebook.ipynb:22-29
Timestamp: 2025-07-02T18:27:51.097Z
Learning: jiridanek consistently creates comprehensive follow-up GitHub issues from PR review comments in opendatahub-io/notebooks, turning specific code quality concerns into systematic improvements tracked with proper context, acceptance criteria, and cross-references. Issue #1266 demonstrates this pattern by expanding a specific error handling concern in load_expected_versions() into a repository-wide improvement initiative.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1379
File: .tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-push.yaml:14-17
Timestamp: 2025-07-11T11:15:47.424Z
Learning: jiridanek requested GitHub issue creation for CEL filter problem in datascience workbench Tekton pipelines during PR #1379 review. Issue #1383 was successfully created with comprehensive problem description covering both Python 3.11 and 3.12 pipelines incorrectly watching jupyter/minimal directories instead of jupyter/datascience directories, detailed impact analysis of pipeline execution failures, complete solution with before/after code examples, thorough acceptance criteria for path updates and pipeline triggering verification, implementation notes about repository structure alignment, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/test/test_notebook.ipynb:112-126
Timestamp: 2025-07-08T13:21:09.150Z
Learning: jiridanek requested GitHub issue creation for notebook linting and formatting improvements during PR #1306 review, specifically to address inconsistent metadata across .ipynb files and implement systematic quality standards. This continues the established pattern of comprehensive issue creation for code quality improvements with detailed problem descriptions, multiple solution options, phased acceptance criteria, and proper context linking.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T14:46:03.215Z
Learning: jiridanek requested GitHub issue creation for two nitpicks during PR #1588 review: comment wording improvement in ROCm TensorFlow Dockerfile and typo fix in Jupyter DataScience Dockerfile stage header. Issues #1589 and #1590 were successfully created with comprehensive problem descriptions, specific file locations and line numbers, clear before/after solutions, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for RStudio py311 Tekton push pipelines during PR #1379 review. Issue #1384 was successfully created covering two RStudio variants (CPU and CUDA) found in manifests/base/params-latest.env, with comprehensive problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1325
File: jupyter/pytorch/ubi9-python-3.12/Pipfile:42-42
Timestamp: 2025-07-09T14:22:14.553Z
Learning: jiridanek requested GitHub issue creation for Pipfile.lock verification script implementation during PR #1325 review, specifically to systematize the manual verification process for dependency version consistency across all lock files using jq. Issue #1367 was created with comprehensive problem description covering manual verification challenges, detailed solution with jq-based verification script, enhanced features for CI integration, clear acceptance criteria, implementation areas breakdown, benefits analysis, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-pytorch/ubi9-python-3.12/de-vendor-torch.sh:9-12
Timestamp: 2025-07-08T19:28:15.791Z
Learning: jiridanek requested GitHub issue creation for runtime detection improvement of Python site-packages paths during PR #1333 review. Issue #1344 was created with comprehensive problem description covering hard-coded path fragility across UBI9 distributions, extensive affected files analysis including 4 de-vendor scripts, 30+ Dockerfiles with chmod operations, and 12+ pip.conf configurations, runtime detection solution using sysconfig module, implementation areas breakdown, benefits analysis, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

@openshift-ci openshift-ci bot added size/xxl and removed size/xxl labels Aug 1, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (2)
runtimes/tensorflow/ubi9-python-3.12/requirements.txt (1)

849-851: Standalone Keras 3.x still included – previous compatibility concern remains

The presence of keras==3.11.1 alongside tensorflow==2.19.0 re-introduces the same “Keras 3 vs tf.keras” API clash already tracked in Issue #1594.

jupyter/tensorflow/ubi9-python-3.12/requirements.txt (1)

1064-1066: Standalone Keras still co-installed with TensorFlow – previously tracked issue remains open
The Keras 3 series is still API-incompatible with tf.keras from TF 2.19. Updating to 3.11.1 does not change that fact; mixing the two continues to confuse end-users (ModuleNotFoundError: keras.src). This was already discussed and tracked in issue #1594, so no further action here.

🧹 Nitpick comments (1)
jupyter/tensorflow/ubi9-python-3.12/requirements.txt (1)

1046-1048: Pin style for JupyterLab extensions deviates from repository policy

jupyterlab-git is a Lab extension; elsewhere these are pinned with the compatible operator (~=) to pick up non-breaking bug-fixes while keeping API compatibility.

-jupyterlab-git==0.51.2
+jupyterlab-git~=0.51.2
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9dc2e3b and 8f824ee.

⛔ Files ignored due to path filters (12)
  • codeserver/ubi9-python-3.12/Pipfile.lock is excluded by !**/*.lock
  • jupyter/datascience/ubi9-python-3.12/Pipfile.lock is excluded by !**/*.lock
  • jupyter/minimal/ubi9-python-3.12/Pipfile.lock is excluded by !**/*.lock
  • jupyter/pytorch/ubi9-python-3.12/Pipfile.lock is excluded by !**/*.lock
  • jupyter/rocm/pytorch/ubi9-python-3.12/Pipfile.lock is excluded by !**/*.lock
  • jupyter/tensorflow/ubi9-python-3.12/Pipfile.lock is excluded by !**/*.lock
  • jupyter/trustyai/ubi9-python-3.12/Pipfile.lock is excluded by !**/*.lock
  • runtimes/datascience/ubi9-python-3.12/Pipfile.lock is excluded by !**/*.lock
  • runtimes/minimal/ubi9-python-3.12/Pipfile.lock is excluded by !**/*.lock
  • runtimes/pytorch/ubi9-python-3.12/Pipfile.lock is excluded by !**/*.lock
  • runtimes/rocm-pytorch/ubi9-python-3.12/Pipfile.lock is excluded by !**/*.lock
  • runtimes/tensorflow/ubi9-python-3.12/Pipfile.lock is excluded by !**/*.lock
📒 Files selected for processing (12)
  • codeserver/ubi9-python-3.12/requirements.txt (2 hunks)
  • jupyter/datascience/ubi9-python-3.12/requirements.txt (6 hunks)
  • jupyter/minimal/ubi9-python-3.12/requirements.txt (2 hunks)
  • jupyter/pytorch/ubi9-python-3.12/requirements.txt (6 hunks)
  • jupyter/rocm/pytorch/ubi9-python-3.12/requirements.txt (6 hunks)
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt (7 hunks)
  • jupyter/trustyai/ubi9-python-3.12/requirements.txt (7 hunks)
  • runtimes/datascience/ubi9-python-3.12/requirements.txt (3 hunks)
  • runtimes/minimal/ubi9-python-3.12/requirements.txt (1 hunks)
  • runtimes/pytorch/ubi9-python-3.12/requirements.txt (3 hunks)
  • runtimes/rocm-pytorch/ubi9-python-3.12/requirements.txt (3 hunks)
  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt (4 hunks)
✅ Files skipped from review due to trivial changes (9)
  • codeserver/ubi9-python-3.12/requirements.txt
  • jupyter/pytorch/ubi9-python-3.12/requirements.txt
  • runtimes/minimal/ubi9-python-3.12/requirements.txt
  • jupyter/minimal/ubi9-python-3.12/requirements.txt
  • runtimes/pytorch/ubi9-python-3.12/requirements.txt
  • runtimes/rocm-pytorch/ubi9-python-3.12/requirements.txt
  • jupyter/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/rocm/pytorch/ubi9-python-3.12/requirements.txt
  • jupyter/trustyai/ubi9-python-3.12/requirements.txt
🧰 Additional context used
🧠 Learnings (24)
📓 Common learnings
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/test/test_notebook.ipynb:22-29
Timestamp: 2025-07-02T18:27:51.097Z
Learning: jiridanek consistently creates comprehensive follow-up GitHub issues from PR review comments in opendatahub-io/notebooks, turning specific code quality concerns into systematic improvements tracked with proper context, acceptance criteria, and cross-references. Issue #1266 demonstrates this pattern by expanding a specific error handling concern in load_expected_versions() into a repository-wide improvement initiative.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1379
File: .tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-push.yaml:14-17
Timestamp: 2025-07-11T11:15:47.424Z
Learning: jiridanek requested GitHub issue creation for CEL filter problem in datascience workbench Tekton pipelines during PR #1379 review. Issue #1383 was successfully created with comprehensive problem description covering both Python 3.11 and 3.12 pipelines incorrectly watching jupyter/minimal directories instead of jupyter/datascience directories, detailed impact analysis of pipeline execution failures, complete solution with before/after code examples, thorough acceptance criteria for path updates and pipeline triggering verification, implementation notes about repository structure alignment, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/test/test_notebook.ipynb:112-126
Timestamp: 2025-07-08T13:21:09.150Z
Learning: jiridanek requested GitHub issue creation for notebook linting and formatting improvements during PR #1306 review, specifically to address inconsistent metadata across .ipynb files and implement systematic quality standards. This continues the established pattern of comprehensive issue creation for code quality improvements with detailed problem descriptions, multiple solution options, phased acceptance criteria, and proper context linking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-24T12:01:45.188Z
Learning: jiridanek requested verification of 2024.2 tag package versions against corresponding Pipfiles during PR #1496 review. The analysis revealed that 2024.2 tags contain intentionally frozen older versions (N-1 behavior) while the current PR correctly updates only the N (latest) tags to match Python 3.11 Pipfiles, demonstrating proper understanding of the repository's N-1 version freezing policy.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T14:46:03.215Z
Learning: jiridanek requested GitHub issue creation for two nitpicks during PR #1588 review: comment wording improvement in ROCm TensorFlow Dockerfile and typo fix in Jupyter DataScience Dockerfile stage header. Issues #1589 and #1590 were successfully created with comprehensive problem descriptions, specific file locations and line numbers, clear before/after solutions, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: codeserver/ubi9-python-3.11/Dockerfile.cpu:17-18
Timestamp: 2025-08-01T16:10:21.005Z
Learning: jiridanek requested GitHub issue creation for version pinning improvement of micropipenv and uv packages during PR #968 review. Issue #1595 was created with comprehensive problem description covering build reproducibility risks from unpinned package versions across 18 affected Dockerfiles, two solution options (direct pinning vs build arguments), implementation approach with testing requirements, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/datascience/ubi9-python-3.12/Pipfile:33-34
Timestamp: 2025-07-08T19:26:17.140Z
Learning: jiridanek requested GitHub issue creation for jupyter-client dependency pinning inconsistency during PR #1333 review, specifically asking to note the implications of breaking changes in 9.x versions. Issue #1343 was created with comprehensive problem description covering inconsistent pinning style across all Python 3.12 runtime images, detailed breaking changes analysis (kernel protocol, session management, connection security, API changes, async/await modifications), reproducibility and security impact assessment, multiple solution options with code examples, phased acceptance criteria, implementation guidance, testing approach, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for RStudio py311 Tekton push pipelines during PR #1379 review. Issue #1384 was successfully created covering two RStudio variants (CPU and CUDA) found in manifests/base/params-latest.env, with comprehensive problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1325
File: jupyter/pytorch/ubi9-python-3.12/Pipfile:42-42
Timestamp: 2025-07-09T14:22:14.553Z
Learning: jiridanek requested GitHub issue creation for Pipfile.lock verification script implementation during PR #1325 review, specifically to systematize the manual verification process for dependency version consistency across all lock files using jq. Issue #1367 was created with comprehensive problem description covering manual verification challenges, detailed solution with jq-based verification script, enhanced features for CI integration, clear acceptance criteria, implementation areas breakdown, benefits analysis, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1591
File: codeserver/ubi9-python-3.11/Pipfile.lock:1-1
Timestamp: 2025-08-01T16:03:18.704Z
Learning: jiridanek requested GitHub issue creation for Keras 3 / TensorFlow API compatibility problem during PR #1591 review. Issue #1594 was successfully created with comprehensive problem description covering API confusion between standalone keras==3.11.1 and tf.keras bundled with tensorflow==2.18.1, multiple solution options (remove standalone Keras, set KERAS_BACKEND, or documentation), clear acceptance criteria, affected files analysis, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: TrustyAI's jupyter-bokeh was pinned to 3.0.5 due to compatibility requirements with TrustyAI's visualization components, but the actual deployed version in requirements.txt shows 3.0.7, indicating incremental testing. The upgrade to 4.0.5 in this PR represents the completion of a gradual migration strategy from the 3.x series after confirming compatibility with Bokeh 3.7.3.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/datascience/ubi9-python-3.11/Pipfile:34-36
Timestamp: 2025-06-28T14:13:27.890Z
Learning: In the opendatahub-io/notebooks repository, the dependency pinning strategy follows a deliberate pattern: core `jupyterlab` package uses exact pinning (==) across all notebook images to ensure UI consistency, while JupyterLab extensions and all server components (jupyter-server, jupyter-server-proxy, jupyter-server-terminals) use compatible release (~=) pinning to allow automatic security updates and bug fixes while maintaining API compatibility.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: The jupyter-bokeh package was previously pinned to version 3.0.5 in the TrustyAI notebook image due to compatibility requirements with TrustyAI components, as indicated by the comment "Should be pinned down to this version in order to be compatible with trustyai" that was removed in this update.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-23T16:18:42.922Z
Learning: The TensorFlow ROCm Python 3.12 compatibility issue in opendatahub-io/notebooks PR #1259 was caused by using tensorflow-rocm==2.14.0.600 in Pipfile.lock which lacks Python 3.12 wheels, while the Pipfile specifies tensorflow_rocm=~=2.18.1. The solution requires updating Pipfile sources to include https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4/ repository which contains tensorflow_rocm-2.18.1-cp312-cp312-manylinux_2_28_x86_64.whl and regenerating Pipfile.lock using the piplock-refresh GitHub Action.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: TrustyAI explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency in both their requirements.txt and pyproject.toml files, with no open issues tracking jupyter-bokeh 4.x compatibility. This creates an unresolvable pip dependency conflict when trying to upgrade jupyter-bokeh to 4.x in notebook images that include TrustyAI.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-01T10:41:56.419Z
Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatahub-io/notebooks. They run `pipenv lock` inside UBI9 containers with specific platform arguments (`--platform=linux/amd64 --python-version 3.12`) to avoid host OS dependency conflicts when generating Pipfile.lock files.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1519
File: jupyter/pytorch+llmcompressor/ubi9-python-3.11/runtime-images/llmcompressor-pytorch-ubi9-py311.json:2-9
Timestamp: 2025-07-29T16:00:31.637Z
Learning: jiridanek indicated that the current practice for runtime-images JSON files in opendatahub-io/notebooks has changed significantly from the SHA256 digest pinning pattern, and that rebasing PR #1519 would reveal the new practice which is "something completely different" from the existing pattern.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1269
File: codeserver/ubi9-python-3.12/nginx/root/usr/share/container-scripts/nginx/common.sh:1-3
Timestamp: 2025-07-03T12:07:19.365Z
Learning: jiridanek consistently requests GitHub issue creation for technical improvements identified during code reviews in opendatahub-io/notebooks, ensuring systematic tracking of code quality enhancements like shell script portability issues with comprehensive descriptions, solution options, and acceptance criteria.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#968
File: codeserver/ubi9-python-3.11/Dockerfile.cpu:138-140
Timestamp: 2025-08-01T16:07:58.677Z
Learning: jiridanek prefers architectural solutions that eliminate problems entirely rather than just fixing immediate technical issues. When presented with a pipeline safety concern about micropipenv requirements generation, he suggested removing micropipenv from the build process altogether by using pre-committed requirements.txt files, demonstrating preference for simplification and deterministic builds over complex workarounds.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1269
File: codeserver/ubi9-python-3.12/utils/process.sh:17-19
Timestamp: 2025-07-03T14:00:00.909Z
Learning: jiridanek efficiently identifies when CodeRabbit review suggestions are already covered by existing comprehensive issues, demonstrating excellent issue management and avoiding duplicate tracking of the same improvements across multiple locations.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1151
File: jupyter/tensorflow/ubi9-python-3.12/test/test_notebook.ipynb:31-34
Timestamp: 2025-07-01T07:03:05.385Z
Learning: jiridanek demonstrates excellent pattern recognition for identifying duplicated code issues across the opendatahub-io/notebooks repository. When spotting a potential problem in test notebooks, he correctly assesses that such patterns are likely replicated across multiple similar files rather than being isolated incidents, leading to more effective systematic solutions.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Dockerfile.rocm:56-66
Timestamp: 2025-07-02T18:19:49.397Z
Learning: jiridanek consistently creates comprehensive follow-up GitHub issues for security concerns raised during PR reviews in opendatahub-io/notebooks, ensuring systematic tracking and resolution of supply-chain security improvements like GPG signature verification for package repositories.
📚 Learning: the tensorflow rocm python 3.12 compatibility issue in opendatahub-io/notebooks pr #1259 was caused ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-23T16:18:42.922Z
Learning: The TensorFlow ROCm Python 3.12 compatibility issue in opendatahub-io/notebooks PR #1259 was caused by using tensorflow-rocm==2.14.0.600 in Pipfile.lock which lacks Python 3.12 wheels, while the Pipfile specifies tensorflow_rocm=~=2.18.1. The solution requires updating Pipfile sources to include https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4/ repository which contains tensorflow_rocm-2.18.1-cp312-cp312-manylinux_2_28_x86_64.whl and regenerating Pipfile.lock using the piplock-refresh GitHub Action.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • runtimes/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: grdryn corrected coderabbit's false assessment about cuda companion package wheel availability durin...
Learnt from: grdryn
PR: opendatahub-io/notebooks#1396
File: jupyter/tensorflow/ubi9-python-3.12/Pipfile:13-14
Timestamp: 2025-07-16T00:17:10.313Z
Learning: grdryn corrected CodeRabbit's false assessment about CUDA companion package wheel availability during PR #1396 review. The original analysis incorrectly checked all package releases instead of the specific versions that would be installed with tensorflow[and-cuda]~=2.19.0. The actual versions (nvidia-cudnn-cu12/9.3.0.75, nvidia-cuda-runtime-cu12/12.5.82, nvidia-cublas-cu12/12.5.3.2) do have aarch64 wheels available on PyPI, making the and-cuda extra compatible with arm64 builds.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • runtimes/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: tensorflow_rocm package versions 2.12.1.570 through 2.14.0.600 do not provide python 3.12 wheels (cp...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:03:45.020Z
Learning: tensorflow_rocm package versions 2.12.1.570 through 2.14.0.600 do not provide Python 3.12 wheels (cp312) on PyPI, causing Pipfile lock failures when attempting to create Python 3.12-based ROCm TensorFlow notebook images in opendatahub-io/notebooks.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • runtimes/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: the python 3.11 infrastructure for rocm tensorflow images in opendatahub-io/notebooks is already pro...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:03:45.020Z
Learning: The Python 3.11 infrastructure for ROCm TensorFlow images in opendatahub-io/notebooks is already properly configured in the Makefile with both BASE_DIRS entries for Pipfile lock renewals and all-images targets for CI builds, requiring only commenting out the corresponding Python 3.12 entries when downgrading due to wheel availability issues.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • runtimes/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: tensorflow_rocm package has no python 3.12 or 3.13 wheel support as of july 2025, with the latest ve...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:05:33.329Z
Learning: tensorflow_rocm package has no Python 3.12 or 3.13 wheel support as of July 2025, with the latest version 2.14.0.600 only supporting Python 3.9, 3.10, and 3.11. For Python 3.12+ ROCm TensorFlow environments, regular TensorFlow with runtime ROCm configuration is the recommended alternative approach.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: jiridanek identified that arm64 wheels for h5py 3.14.0 are available on pypi but being ignored due t...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1396
File: runtimes/tensorflow/ubi9-python-3.12/Dockerfile.cuda:124-127
Timestamp: 2025-07-20T20:47:36.509Z
Learning: jiridanek identified that ARM64 wheels for h5py 3.14.0 are available on PyPI but being ignored due to AMD64-only dependency locking with --platform=linux/amd64. This causes unnecessary hdf5-devel package installation in ARM64 TensorFlow images when the ARM64 wheel h5py-3.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl could be used instead. The Pipfile.lock only contains 2 hashes for h5py, confirming limited platform consideration during lock generation.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • runtimes/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: tensorflow_rocm package has no python 3.12 or 3.13 wheel support as of july 2025, with the latest ve...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-03T07:05:33.329Z
Learning: tensorflow_rocm package has no Python 3.12 or 3.13 wheel support as of July 2025, with the latest version 2.14.0.600 only supporting Python 3.9, 3.10, and 3.11. The tensorflow-rocm upstream project appears abandoned with the last release in 2019. For Python 3.12+ ROCm TensorFlow environments, regular TensorFlow 2.18+ with runtime ROCm configuration is the recommended and industry-standard approach, as modern TensorFlow automatically detects and utilizes ROCm when properly installed.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: rocm is not supported by upstream tensorflow, unlike cuda. rocm support requires the specialized ten...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1259
File: jupyter/rocm/tensorflow/ubi9-python-3.12/Pipfile:13-15
Timestamp: 2025-07-14T15:36:29.815Z
Learning: ROCm is not supported by upstream TensorFlow, unlike CUDA. ROCm support requires the specialized tensorflow_rocm package, which creates a dependency challenge for Python 3.12 environments since tensorflow_rocm lacks Python 3.12 wheels while regular TensorFlow lacks ROCm support.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: jiridanek requested github issue creation for jupyter-client dependency pinning inconsistency during...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/datascience/ubi9-python-3.12/Pipfile:33-34
Timestamp: 2025-07-08T19:26:17.140Z
Learning: jiridanek requested GitHub issue creation for jupyter-client dependency pinning inconsistency during PR #1333 review, specifically asking to note the implications of breaking changes in 9.x versions. Issue #1343 was created with comprehensive problem description covering inconsistent pinning style across all Python 3.12 runtime images, detailed breaking changes analysis (kernel protocol, session management, connection security, API changes, async/await modifications), reproducibility and security impact assessment, multiple solution options with code examples, phased acceptance criteria, implementation guidance, testing approach, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • runtimes/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: trustyai's jupyter-bokeh was pinned to 3.0.5 due to compatibility requirements with trustyai's visua...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: TrustyAI's jupyter-bokeh was pinned to 3.0.5 due to compatibility requirements with TrustyAI's visualization components, but the actual deployed version in requirements.txt shows 3.0.7, indicating incremental testing. The upgrade to 4.0.5 in this PR represents the completion of a gradual migration strategy from the 3.x series after confirming compatibility with Bokeh 3.7.3.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • runtimes/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: jiridanek requested verification of 2024.2 tag package versions against corresponding pipfiles durin...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-24T12:01:45.188Z
Learning: jiridanek requested verification of 2024.2 tag package versions against corresponding Pipfiles during PR #1496 review. The analysis revealed that 2024.2 tags contain intentionally frozen older versions (N-1 behavior) while the current PR correctly updates only the N (latest) tags to match Python 3.11 Pipfiles, demonstrating proper understanding of the repository's N-1 version freezing policy.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • runtimes/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: trustyai explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency in both their requirements.tx...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: TrustyAI explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency in both their requirements.txt and pyproject.toml files, with no open issues tracking jupyter-bokeh 4.x compatibility. This creates an unresolvable pip dependency conflict when trying to upgrade jupyter-bokeh to 4.x in notebook images that include TrustyAI.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • runtimes/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: trustyai 0.6.1 (latest version as of june 2025) has a hard dependency constraint on jupyter-bokeh~=3...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: TrustyAI 0.6.1 (latest version as of June 2025) has a hard dependency constraint on jupyter-bokeh~=3.0.5, preventing upgrades to jupyter-bokeh 4.x in notebook images that include TrustyAI. This requires either waiting for TrustyAI to update their dependency or excluding TrustyAI from jupyter-bokeh upgrades.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • runtimes/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: the jupyter-bokeh package was previously pinned to version 3.0.5 in the trustyai notebook image due ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:15:41.168Z
Learning: The jupyter-bokeh package was previously pinned to version 3.0.5 in the TrustyAI notebook image due to compatibility requirements with TrustyAI components, as indicated by the comment "Should be pinned down to this version in order to be compatible with trustyai" that was removed in this update.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • runtimes/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatah...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-01T10:41:56.419Z
Learning: jiridanek's team uses containerized dependency locking for cross-platform compatibility in opendatahub-io/notebooks. They run `pipenv lock` inside UBI9 containers with specific platform arguments (`--platform=linux/amd64 --python-version 3.12`) to avoid host OS dependency conflicts when generating Pipfile.lock files.

Applied to files:

  • runtimes/tensorflow/ubi9-python-3.12/requirements.txt
  • runtimes/datascience/ubi9-python-3.12/requirements.txt
  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: jiridanek requested github issue creation for runtime detection improvement of python site-packages ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-pytorch/ubi9-python-3.12/de-vendor-torch.sh:9-12
Timestamp: 2025-07-08T19:28:15.791Z
Learning: jiridanek requested GitHub issue creation for runtime detection improvement of Python site-packages paths during PR #1333 review. Issue #1344 was created with comprehensive problem description covering hard-coded path fragility across UBI9 distributions, extensive affected files analysis including 4 de-vendor scripts, 30+ Dockerfiles with chmod operations, and 12+ pip.conf configurations, runtime detection solution using sysconfig module, implementation areas breakdown, benefits analysis, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Applied to files:

  • runtimes/datascience/ubi9-python-3.12/requirements.txt
📚 Learning: in opendatahub-io/notebooks, python 3.12-based images (e.g., runtime-cuda-pytorch-ubi9-python-3.12) ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:54:28.202Z
Learning: In opendatahub-io/notebooks, Python 3.12-based images (e.g., runtime-cuda-pytorch-ubi9-python-3.12) may fail container runtime tests with "libcrypt.so.1 => not found" for MySQL SASL2 plugin libraries if `libxcrypt-compat` is missing. The solution is to install `libxcrypt-compat` in the Dockerfile.

Applied to files:

  • runtimes/datascience/ubi9-python-3.12/requirements.txt
📚 Learning: jiridanek requested github issue creation for runtime detection improvement of python site-packages ...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1333
File: runtimes/rocm-pytorch/ubi9-python-3.12/de-vendor-torch.sh:9-12
Timestamp: 2025-07-08T19:28:15.791Z
Learning: jiridanek requested GitHub issue creation for runtime detection improvement of Python site-packages paths during PR #1333 review. Issue #1340 was created with comprehensive problem description covering hard-coded path fragility across UBI9 distributions, affected files analysis including de-vendor scripts and pip.conf configurations, runtime detection solution using sysconfig module, implementation areas breakdown, benefits analysis, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.

Applied to files:

  • runtimes/datascience/ubi9-python-3.12/requirements.txt
📚 Learning: pytorch 2.6.0 wheels with cuda 12.4 support (torch-2.6.0+cu124) are available on the official pytorc...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1463
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:15-15
Timestamp: 2025-07-22T14:31:20.315Z
Learning: PyTorch 2.6.0 wheels with CUDA 12.4 support (torch-2.6.0+cu124) are available on the official PyTorch CUDA index at https://download.pytorch.org/whl/cu124/ for Python versions 3.9, 3.10, 3.11, 3.12, and 3.13 on both Linux x86_64 and Windows AMD64 platforms.

Applied to files:

  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: in the opendatahub-io/notebooks repository, the dependency pinning strategy follows a deliberate pat...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/datascience/ubi9-python-3.11/Pipfile:34-36
Timestamp: 2025-06-28T14:13:27.890Z
Learning: In the opendatahub-io/notebooks repository, the dependency pinning strategy follows a deliberate pattern: core `jupyterlab` package uses exact pinning (==) across all notebook images to ensure UI consistency, while JupyterLab extensions and all server components (jupyter-server, jupyter-server-proxy, jupyter-server-terminals) use compatible release (~=) pinning to allow automatic security updates and bug fixes while maintaining API compatibility.

Applied to files:

  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: the jupyter-bokeh pinning to 3.0.5 in trustyai notebook image was not due to trustyai code compatibi...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1218
File: jupyter/trustyai/ubi9-python-3.11/Pipfile:49-49
Timestamp: 2025-06-28T14:21:09.429Z
Learning: The jupyter-bokeh pinning to 3.0.5 in TrustyAI notebook image was not due to TrustyAI code compatibility issues, but because the trustyai package itself explicitly declares jupyter-bokeh~=3.0.5 as a hard dependency, causing pip dependency resolution conflicts when trying to upgrade to jupyter-bokeh 4.x.

Applied to files:

  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: odh-elyra uses universal wheels (py3-none-any) rather than platform-specific wheels, making it compa...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1325
File: jupyter/datascience/ubi9-python-3.11/Pipfile:32-32
Timestamp: 2025-07-07T14:54:57.907Z
Learning: odh-elyra uses universal wheels (py3-none-any) rather than platform-specific wheels, making it compatible with all supported Python versions through a single wheel file.

Applied to files:

  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
📚 Learning: in the opendatahub-io/notebooks repository, the test runner's python version (configured in github a...
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1247
File: .github/workflows/build-notebooks-TEMPLATE.yaml:50-53
Timestamp: 2025-07-01T14:36:52.852Z
Learning: In the opendatahub-io/notebooks repository, the test runner's Python version (configured in GitHub Actions UV setup) intentionally doesn't need to match the Python version of the container images being tested. jiridanek's team uses Python 3.12 for running tests while images may use different Python versions (like 3.11), and this approach works fine since the test code is separate from the application code running inside the containers.

Applied to files:

  • jupyter/tensorflow/ubi9-python-3.12/requirements.txt
🔇 Additional comments (9)
runtimes/tensorflow/ubi9-python-3.12/requirements.txt (3)

112-138: argon2-cffi-bindings bump is fine

Version bump to 25.1.0 is consistent with argon2-cffi (Line 109) and upstream release notes show no breaking API changes.


1015-1070: matplotlib upgrade LGTM

Bumping to 3.10.5 is a straightforward patch+minor update; no API removals between .3 and .5.


1876-1884: py-spy upgrade LGTM

0.4.1 only fixes symbol resolution on aarch64; safe for runtime images.

runtimes/datascience/ubi9-python-3.12/requirements.txt (1)

955-1010: Matplotlib 3.10.5 has cp312 wheels for both x86_64 and aarch64—safe to upgrade

Verified via PyPI JSON:

  • manylinux2014_x86_64 wheel
  • manylinux_2_27_aarch64 wheel

No ARM64 source builds or extra dependencies will be pulled in; no further action required.

jupyter/tensorflow/ubi9-python-3.12/requirements.txt (5)

1244-1299: Matplotlib patch bump LGTM

3.10.5 is a pure bug-fix release; no known breaking changes for our stack.


1672-1674: odh-elyra 4.2.3 bump acknowledged

Universe wheel, no ABI impact – good to go.


2158-2166: py-spy patch bump – ensure binary wheels land in minimal runtime images

py-spy ships manylinux static wheels; just ensure the slim runtime images that exclude patchelf still work. Otherwise fine.


2322-2324: PyGitHub minor bump introduces async helpers – double-check any monkey-patching

The public surface is stable but a few deprecated aliases were removed. Search the codebase for direct attribute access (_requester, _Github__...) and adjust if necessary.


118-144: argon2-cffi-bindings 25.1.0 wheels verified for x86_64 & aarch64—bump is safe

I ran the wheel-presence check and found both manylinux and musllinux wheels for Python 3.9+ on x86_64 and aarch64:

• cp39-abi3-manylinux_2_26_{x86_64,aarch64}.manylinux_2_28_{x86_64,aarch64}.whl
• cp39-abi3-musllinux_1_2_{x86_64,aarch64}.whl
• (Plus cp314 build artifacts, though the abi3 wheels cover Python 3.12)

No source build is required on either architecture—CI will remain green.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/kfbuild odh-workbench-jupyter-minimal-cuda-py312-ubi9-on-pull-request

Copy link
Contributor

openshift-ci bot commented Aug 1, 2025

@jiridanek: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/notebook-rocm-jupyter-ubi9-python-3-12-pr-image-mirror 8f824ee link true /test notebook-rocm-jupyter-ubi9-python-3-12-pr-image-mirror
ci/prow/notebook-rocm-jupyter-tf-ubi9-python-3-11-pr-image-mirror 8f824ee link true /test notebook-rocm-jupyter-tf-ubi9-python-3-11-pr-image-mirror
ci/prow/rocm-runtimes-ubi9-e2e-tests 8f824ee link true /test rocm-runtimes-ubi9-e2e-tests
ci/prow/runtimes-ubi9-e2e-tests 8f824ee link true /test runtimes-ubi9-e2e-tests
ci/prow/rocm-notebooks-py312-e2e-tests 8f824ee link true /test rocm-notebooks-py312-e2e-tests
ci/prow/notebooks-ubi9-e2e-tests 8f824ee link true /test notebooks-ubi9-e2e-tests
ci/prow/notebooks-py312-ubi9-e2e-tests 8f824ee link true /test notebooks-py312-ubi9-e2e-tests

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@jiridanek jiridanek merged commit 6c50c8d into opendatahub-io:main Aug 2, 2025
89 of 117 checks passed
@jiridanek jiridanek deleted the jd_elyra_upd branch August 2, 2025 09:14
@coderabbitai coderabbitai bot mentioned this pull request Aug 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size/xxl tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant